[사전 조건]
VirtualBox 설치
Vagrant 설치
[개요]
Ansible을 다시 공부하면서 환경을 먼저 구성해야 했다. 클라우드를 이용할 수도 있으나 비용 때문에 로컬에서 VM 환경을 세팅했다.
다양하게 세팅하는 방법이 있으나 Vagrant가 좀 더 효율적으로 보여 Vagrant를 이용해서 세팅했다.
일단 여러개의 VM은 필요없으나 Ansible Server 1대, Client 1대로 구축하되 확장성(여러개로 확장)을 고려해서 스크립트를 구성했다.
[스크립트]
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# M: Master Node
# W: Worker Node
M = 1
W = 1
(1..W).each do |w|
config.vm.define "ansible-client00#{w}" do |cfg|
cfg.vm.box = "bento/ubuntu-22.04"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "ansible-client00#{w}"
vb.memory = "1024"
vb.cpus = 1
end
cfg.vm.host_name = "ansible-client00#{w}"
cfg.vm.network "private_network", ip: "192.168.1.#{w}"
cfg.vm.network "forwarded_port", guest: 22, host: "6000#{w}", auto_correct: true, id: "ssh"
cfg.vm.network "forwarded_port", guest: 80, host: "6008#{w}", auto_correct: true
end
end
#ansible-server
(1..M).each do |m|
config.vm.define "ansible-server#{m}" do |cfg|
cfg.vm.box = "bento/ubuntu-22.04"
cfg.vm.provider "virtualbox" do |vb|
vb.name="ansible-server#{m}"
vb.memory = "1024"
vb.cpus = 2
end
cfg.vm.host_name = "ansible-server#{m}"
cfg.vm.network "private_network", ip: "192.168.1.#{m}0"
cfg.vm.network "forwarded_port", guest: 22, host: "600#{m}0", auto_correct: true, id: "ssh"
# cfg.vm.synced_folder "../shared_data", "/shared_data", disabled: true
cfg.vm.provision "shell", inline: "apt update"
cfg.vm.provision "shell", inline: "apt install software-properties-common"
cfg.vm.provision "shell", inline: "add-apt-repository --yes --update ppa:ansible/ansible"
cfg.vm.provision "shell", inline: "apt install ansible -y"
end
end
end
- Vagrant 는 루비 언어 문법을 따른다. 지금 당장 공부할 필요는 없다.
- 서버와 클라이언트를 분리해서 스크립트를 구성(do 문)해서 위의 M(마스터), W(워커) 수를 설정해주면 해당 수에 따라서 각각 생성되도록 스크립트를 구성했다.
- Ansible은 서버에만 설치하면 되므로 #ansible-server 하위에 cfg.vm.provision 명령어로 Ansible을 설치했다.
해당 스크립트를 기준으로 VM을 구성하려면?
Vagrant up
명령어로 구성하면 된다.
참고로 github에 공개했으니 궁금하시면 해당 github를 참고해 주세요.
'개발환경 세팅' 카테고리의 다른 글
Git - 터미널 출력 언어가 한글로 나올때 영어로 바꾸는 방법 (3) | 2024.10.15 |
---|---|
시놀로지에서 Visual Studio Code Server 설치 (feat. Docker-Compose) (0) | 2023.08.16 |
[VS Code][MAC] 탭이동 설정 (0) | 2022.10.25 |
Docker-compose 로 Redis 컨테이너 환경 구성 (0) | 2020.06.29 |
[리눅스] SVN 종료 스크립트 (0) | 2018.01.24 |