실습 환경
Ubuntu | 18.04 |
VirtualBox | latest |
Vagrant | latest |
vagrant 설치는 이전 포스트 혹은 vagrant 공식 페이지에서 확인하시기 바랍니다.
실습 디렉토리 생성 및 이동
mkdir -p ~/vagrant/ansible && cd ~/vagrant/ansible
플러그인 설치
vagrant plugin install vagrant-hostmanager
vagrant plugin install vagrant-disksize
vagrant plugin list
vagrant box add ubuntu/bionic64
vagrant box list
vagrantfile 생성
$ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define "control" do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.name = "control"
vb.cpus = 2
vb.memory = 3072
end
config.vm.hostname = "control"
config.vm.network "private_network", ip: "192.168.56.11"
config.disksize.size = "30GB"
end
config.vm.define "host1" do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.name = "host1"
vb.cpus = 2
vb.memory = 3072
end
config.vm.hostname = "host1"
config.vm.network "private_network", ip: "192.168.56.21"
config.disksize.size = "30GB"
end
config.vm.define "host2" do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.name = "host2"
vb.cpus = 2
vb.memory = 3072
end
config.vm.hostname = "host2"
config.vm.network "private_network", ip: "192.168.56.22"
config.disksize.size = "30GB"
end
config.vm.define "host3" do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.name = "host3"
vb.cpus = 2
vb.memory = 3072
end
config.vm.hostname = "host3"
config.vm.network "private_network", ip: "192.168.56.23"
config.disksize.size = "30GB"
end
config.vm.define "host4" do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.name = "host4"
vb.cpus = 2
vb.memory = 3072
end
config.vm.hostname = "host4"
config.vm.network "private_network", ip: "192.168.56.24"
config.disksize.size = "30GB"
end
# Hostmanager plugin
config.hostmanager.enabled = true
config.hostmanager.manage_guest = true
# Enable SSH Password Authentication
config.vm.provision "shell", inline: <<-SHELL
sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
sed -i 's/archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list
systemctl restart ssh
SHELL
end
가상머신 생성 및 확인
vagrant up
vagrant status
가상머신 접속
vagrant ssh control
ID/PW : vagrant/vagrant
SSH 키 복사
vagrant@control~$ ssh-keygen
vagrant@control~$ ssh-copy-id vagrant@localhost
vagrant@control~$ ssh-copy-id vagrant@host1
vagrant@control~$ ssh-copy-id vagrant@host2
vagrant@control~$ ssh-copy-id vagrant@host3
vagrant@control~$ ssh-copy-id vagrant@host4
관리노드에 ansible 설치
vagrant@control~$ sudo apt update
vagrant@control~$ sudo apt install -y software-properties-common
vagrant@control~$ sudo apt-add-repository -y -u ppa:ansible/ansible
vagrant@control~$ sudo apt install -y ansible
vagrant@control~$ sudo apt install -y python3-argcomplete
vagrant@control~$ sudo activate-global-python-argcomplete3
vagrant@control~$ sudo apt install -y ansible-lint
'Ansible > 01. IaC, Ansible 란? & 설치' 카테고리의 다른 글
코드형 인프라 (IaC), Ansible 개념 & 설치 (1) | 2021.07.19 |
---|