https://www.inflearn.com/course/ansible-%EC%9D%91%EC%9A%A9/
ㅇ 앤서블 서버에 앤서블 코어의 환경 구성하기
- Vagrantfile 수정
1. 베이그런트에서 부르는 호스트 이름 작성
2. 버추얼박스에서 구분하는 호스트 이름 작성
3. 가상머신의 호스트 이름을 변경
4. 호스트 PC와 가상머신 간에는 공유 디렉터리는 사용하지 않음
5. 가상머신에서 인터넷으로 연결되는 IP 설정
6. 호스트PC의 포트를 IP주소와 유사하게 변경
- bootstrap.sh 생성
1. Yum 통해서 EPEL 을 설치
2. Yum 통해서 ansible을 설치
ㅇ 작성한 Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
config.vm.define:"ansible-server" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider:virtualbox do |vb|
vb.name="Ansible-Server (Udemy-Bloter)"
end
cfg.vm.host_name="ansible-server";
cfg.vm.synced_folder ".","/vagrant", disabled: true
cfg.vm.network "public_network", ip: "192.168.0.10"
cfg.vm.network "forwarded_port", guest: 22, host: 19210, auto_correct: false, id: "ssh"
cfg.vm.provision "shell", path: "bootstrap.sh"
end
end
ㅇ 작성한 bootstrap.sh
#! /usr/bin/env bash
yum install epel-release -y
yum install ansible -y
- 위 파일 작성 후, vagrant up 실행하자 Unmounting Virtualbox Guest Additions ISO from: /mnt 에러 발생
통해 해결
ㅇ 앤서블 코어에 플레이북 제작환경 추가하기
- Vagrantfile
1. 'Ansible_env_ready.yml' 파일을 앤서블 서버에 전달
2. 'Ansible_evn_ready.yml' 파일을 앤서블 서버에서 실행
=> 윈도우에서는 앤서블 코어가 작동을 안하기 때문에, ansible-server에 해당 파일 전달하여 실행
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant_API_Version ="2"
Vagrant.configure(Vagrant_API_Version) do |config|
config.vm.define:"ansible-server" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider:virtualbox do |vb|
vb.name="Ansible-Server (Udemy-Bloter)"
end
cfg.vm.host_name="ansible-server"
cfg.vm.synced_folder ".", "/vagrant", disabled: true
cfg.vm.network "public_network", ip: "192.168.0.10"
cfg.vm.network "forwarded_port", guest: 22, host: 19210, auto_correct: false, id: "ssh"
cfg.vm.provision "shell", path: "bootstrap.sh"
cfg.vm.provision "file", source: "Ansible_env_ready.yml", destination: "Ansible_env_ready.yml"
cfg.vm.provision "shell", inline: "ansible-playbook Ansible_env_ready.yml"
end
end
# vagrantfile 에서 cfg.vm.provision 에서 shell 중 path 는 전송하고 실행, inline은 실행만 진행
- bootstrap.sh
1. vim plugin 관련 파일이 저장될 디렉터리를 생성
- /home/vagrant/.vim/autoload
- /home/vagrant/.vim/bundle
2. vim과 bash의 환경 설정 파일을 생성
#! /usr/bin/env bash
# ansible 설치
yum install epel-release -y
yum install ansible -y
# 환경설정과 초기 파일 구성 for vagrant only
# 루트 권한 없이 만듬 (따라서 home에서 진행)
mkdir -p /home/vagrant/.vim/autoload /home/vagrant/.vim/bundle
touch /home/vagrant/.vimrc
touch /home/vagrant/.bashrc
- Ansible_env_ready.yml
1. yum을 통해서 vim-enhanced를 설치
2. yum 을 통해서 git을 설치
3. pathogen.vim 을 다운로드
4. vim-ansible-yaml을 git clone을 통해서 다운로드
5. vim의 환경설정(vimrc) 을 수정
6. bash의 환경설정(bashrc) 을 수정
---
- name: Setup for the Ansible's Enviorment
hosts: localhost
gather_facts: no
tasks:
- name: Install vim-enhanced
yum:
name: vim-enhanced
state: present
- name: Install git
yum:
name: git
state: present
- name: Download pathogen.vim
shell: "curl -fLo /home/vagrant/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim"
- name: Git clone vim-ansible-yaml
git:
repo: 'https://github.com/chase/vim-ansible-yaml.git'
dest: /home/vagrant/.vim/bundle/vim-ansible-yaml
- name: Configure vimrc
lineinfile:
dest: /home/vagrant/.vimrc
line: "{{ item }}"
with_items:
- "set number"
- "execute pathogen#infect()"
- "syntax on"
- name: Configure Bashrc
lineinfile:
dest: /home/vagrant/.bashrc
line: "{{ item }}"
with_items:
- "alias vi='vim'"
- "alias ans='ansible'"
# lineinfile 라인 추가 모듈
# {{item}} 과 with_items가 어울려서 한줄씩 argument로 넘어가서 들어감
- 작성 후, # vagrant provision ansible-server 입력하여 적용 (재기동, 삭제없이 바로 적용)
- # vagrant ssh ansible-server 접속 후, vi Ansible_env_ready.yml 하여 set num 등 확인