Visual Studio Code
PowerShell
VirtualBox
Visual Studio Code
한국어로 변경하는법
Ctrl + Shift + P
language치면
Configure Display Language => 한국어 변경
PowerShell
cd C:\git_repo\02-ansible\
mkdir one-server
cd one-server
vagrant init // vagrant 파일 만들어줌
vs code를 이용해 vagrant파일 확인
Vagrant.configure("2") do |config|
config.vm.box = "base"
end
do ~ end 까지 config 블록
config.vm.box = "base"에서
config.vm.box = "centos/7"으로 변경하고
VirtualBox 확인하면 가상머신 하나 추가됨
vagrant plugin install vagrant-vbguest --plugin-version 0.21 // vagrant-vbguest 플러그인 설치
vagrant plugin uninstall vagrant-vbguest // vagrant-vbguest 플러그인 제거
만들어진 가상머신으로 실행하는게아니라 ssh로접속
vagrant ssh 하면 접속됨
지울때는 vagrant destroy
https://app.vagrantup.com/boxes/search?provider=virtualbox // Vagrant Cloud 주소
Vagrant.configure("2") do |config|
config.vm.define "ansible-server" do |cfg| // vagrant가 관리하는 이름
cfg.vm.box = "centos/7"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "Ansible-Server" // virtualbox에 표시되는 이름
end
cfg.vm.host_name = "ansible-server" // 컴퓨터 이름
cfg.vm.network "private_network", ip: "192.168.56.10"
cfg.vm.network "forwarded_port", guest: 22, host: 60010, auto_correct: true, id: "ssh"
cfg.vm.synced_folder "../data", "/vagrant", disabled: true
end
end
C:\Users\admin\VirtualBox VMs 경로에 가상머신폴더생김
vagrant ssh ansible-server // ssh 접속
sudo yum install redhat-lsb-core // redhat-lsb-core(lsb_release) 패키지 설치
lsb_release -a //
===========================================
■ 가상머신 4개 만들기
Vagrant.configure("2") do |config|
config.vm.boot_timeout = 1800 # timeout 나올때
#================#
#================#
config.vm.define "ansible-node01" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "Ansible-Node01"
end
cfg.vm.host_name = "ansible-node01"
cfg.vm.network "private_network", ip: "192.168.56.101"
cfg.vm.network "forwarded_port", guest: 22, host: 60101, auto_correct: true, id: "ssh"
cfg.vm.network "forwarded_port", guest: 80, host: 60081, auto_correct: true
cfg.vm.synced_folder "../data", "/vagrant", disabled: true
end
config.vm.define "ansible-node02" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "Ansible-Node02"
end
cfg.vm.host_name = "ansible-node02"
cfg.vm.network "private_network", ip: "192.168.56.102"
cfg.vm.network "forwarded_port", guest: 22, host: 60102, auto_correct: true, id: "ssh"
cfg.vm.network "forwarded_port", guest: 80, host: 60082, auto_correct: true
cfg.vm.synced_folder "../data", "/vagrant", disabled: true
end
config.vm.define "ansible-node03" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "Ansible-Node03"
end
cfg.vm.host_name = "ansible-node03"
cfg.vm.network "private_network", ip: "192.168.56.103"
cfg.vm.network "forwarded_port", guest: 22, host: 60103, auto_correct: true, id: "ssh"
cfg.vm.network "forwarded_port", guest: 80, host: 60083, auto_correct: true
cfg.vm.synced_folder "../data", "/vagrant", disabled: true
end
#================#
#================#
config.vm.define "ansible-server" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "Ansible-Server"
end
cfg.vm.host_name = "ansible-server"
cfg.vm.network "private_network", ip: "192.168.56.10"
cfg.vm.network "forwarded_port", guest: 22, host: 60104, auto_correct: true, id: "ssh"
cfg.vm.synced_folder "../data", "/vagrant", disabled: true
end
end
===============================
※ 설치안될때
Windows기능 켜기/끄기 들어가서
Hyper-V
Windows 하이퍼바이저 플랫폼
가상 머신 플랫폼
체크해제
===============================
Ansible-server에
cfg.vm.provision "shell", inline: "yum install epel-release -y"
cfg.vm.provision "shell", inline: "yum install ansible -y"
두 줄 추가
PowerShell에
vagrant provision
vagrant ssh ansible-server
sudo yum install vim -y
su -
vagrant
vim /etc/ansible/hosts
Visual Studio Code에
one-server에 bash_ssh_conf_4_CentOS.sh 만들어주고
#!/usr/bin/env bash
now=now.backup # sshd 설정 백업
sed -i -e 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
systemctl restart sshd # ssh 데몬 재시작
입력
Vagrantfile에 node01, 02, 03 마지막줄에
# path는 호스트에 있는 파일을 게스트에서 실행되도록 한다.
# 따라서 호스트의 파일을 게스트로 옮기는 작업이 없어도 원격지에서 실행할 수 없다.
# 앤서블 노드에는 앤서블이 설치되지 않아 YAML 플레이북을 설정할 수 없다
cfg.vm.provision "shell", path: "bash_ssh_conf_4_CentOS.sh"
추가입력하고
PowerShell로 와서
vagrant provision
=====================
■ 앤서블 코어를 앤서블 서버에 설치
yum install vim -y
vim /etc/ansible/hosts
맨아래 192.168.56.101 , 192.168.56.102 , 192.168.56.103 추가하고 저장
나와서 ansible all -m ping 치고 yes를 노드 수만큼 입력 3개니까 3번해줌
vagrant ssh ansible-server
su -
vagrant
ansible all -m ping -k
※ 앤서블을 실행할때 참조하는 파일
vim /etc/ansible/ansible.cfg
vim /etc/ansible/hosts
노드 3개를 [nginx]로 묶고 저장하고 나와서
ansible all -m ping -k 이 아닌 all 자리에 nginx를 넣어도 노드3개 모두 동일한값 나옴
※ 앤서블을 실행 시에 사용할 수 있는 옵션값
-i // --inventory-file // 적용될 노드들을 선택
-m // --module-name // 사용하는 모듈
-k // --ask-pass // 암호 물어보도록 설정
--list-hosts // 적용되는 노드들을 확인
vim inven해서
[centos]
192.168.56.101
192.168.56.102
저장하고 나온뒤
ansible -i inven all -m ping -k 해도 됨
ansible -i inven 192.168.56.101 -m ping -k 하면 101번만 값이 출력됨
ansible all -m ping -k --list-hosts
hosts (3):
192.168.56.101
192.168.56.102
192.168.56.103
출력됨
ansible -i inven all -m ping -k --list-hosts
hosts (2):
192.168.56.101
192.168.56.102
출력됨
ansible all -m shell -a "uptime" -k // 켜지고 시간이 얼마나 지났는지 출력됨
192.168.56.101 | CHANGED | rc=0 >>
07:07:24 up 3:20, 1 user, load average: 0.00, 0.01, 0.05
192.168.56.103 | CHANGED | rc=0 >>
07:07:24 up 3:16, 1 user, load average: 0.00, 0.01, 0.05
192.168.56.102 | CHANGED | rc=0 >>
07:07:24 up 3:18, 1 user, load average: 0.00, 0.01, 0.05
ansible all -m shell -a "df -h" -k // 디스크 사용량 체크
ansible all -m shell -a "free -h" -k // 노드들의 메모리 사용량 체크
ansible all -m user -a "name=bjpublick" -k // 앤서블을 통해 노드들에 사용자를 추가
ansible all -m shell -a "tail -3 /etc/passwd" -k // 앤서블을 통해서 노드들에 추가된 사용자를 확인
ansible all -m user - a "name=bjpublic state=abset" -k // 앤서블을 통해서 노드들에 추가된 사용자를 삭제
ansible all -m shell -a "tail -n 1 /etc/passwd" -k // 앤서블을 통해서 노드들에 추가된 사용자를 삭제한 것을 확인