Ansible 실행 절차와 간단한 자습서
Ansible 실행 처리
1, 인벤토리에서 대상 노드 찾기
2, 컨트롤 노드에서 플레이북을 파이썬 코드로 변환
3, 제어 노드에서 대상 노드로 ssh 연결, 파이썬 코드 보내기
4, 타겟 노드에서 파이썬 코드를 실행하고 출력 결과를 컨트롤 노드에 반환
5, 제어 노드, 대상 노드에서 파이썬 코드 삭제
라고 하는 순서를 밟아 실행됩니다.
여기서 플레이북과 인벤토리는 각각 다음과 같은 의미가 되지 않습니다.
플레이북 및 인벤토리
・플레이북・・・처리의 흐름을 정의한 파일. Chef에서 말하는, recipe,
Puppet에서 말하는 manifest에 해당하는 파일
YAML 형식으로 작성되기 때문에 코딩 경험이없는 사람도 쉽게 걸 수 있습니다.
· 인벤토리 ... 대상 노드의 정보가 작성된 파일
이제 간단한 샘플을 실행해 보겠습니다.
먼저 vagrant에서 3가지 가상 환경을 시작하자.
VagrantfileVagrant.configure("2") do |config|
config.vm.define "host" do |node|
node.vm.box = "bento/centos-7"
node.vm.hostname = "host"
node.vm.synced_folder "host", "/vagrant"
node.vm.network :private_network, ip: "192.168.33.11"
node.vm.provision "shell", inline: <<-SHELL
sudo yum -y install epel-release
sudo yum install -y gcc python-pip python-devel openssl-devel libffi-devel
sudo pip install --upgrade pip setuptools
sudo pip install ansible
SHELL
end
config.vm.define "web" do |node|
node.vm.box = "bento/centos-7"
node.vm.hostname = "web"
node.vm.synced_folder "web", "/vagrant"
node.vm.network :private_network, ip: "192.168.33.12"
end
config.vm.define "db" do |node|
node.vm.box = "bento/centos-7"
node.vm.hostname = "db"
node.vm.synced_folder "db", "/vagrant"
node.vm.network :private_network, ip: "192.168.33.13"
end
end
여기서는 host(192.168.33.11)가 컨트롤 노드, web(192.168.33.12)와 db(192.168.33.13)가 타겟 노드라는 형태입니다.
$vagrant up
$vagrant ssh host
에서 호스트로 들어갑니다.
여기서, host로부터 web, db에 각각 ssh로 접속하기 위해서, 열쇠의 설정을 해 갑니다.
키 설정
<가상 환경 호스트에서>
#秘密鍵、公開鍵の作成
$ssh-keygen -t rsa
#全てにenterでok
#仮想環境host(コントロールノード)に公開鍵登録
$ssh-copy-id localhost
#パスワード vagrant
#(ターゲットのーど)仮想環境web(192.168.33.12)に公開鍵登録
$ssh-copy-id 192.168.33.12
#パスワード vagrant
#(ターゲットのーど)仮想環境db(192.168.33.13)に公開鍵登録
$ssh-copy-id 192.168.33.13
#パスワード vagrant
이제 호스트에서
'ssh 192.168.33.12'와 'ssh 192.168.33.13'과 같은 형태로 연결할 수 있어야 합니다.
(즉, 「3, 컨트롤 노드로부터 타겟 노드에 ssh 접속, python의 코드를 송신」의 단계를 밟게 되었다고 하는 것)
host 안에서/vagrant 이하로 가서,
$cd /vagrant
sample_inventory.ini 만들기
sample_inventory.ini[host]
localhost
[web]
192.168.33.12
[db]
192.168.33.13
여기까지 설정은 종료입니다.
다음 명령을 실행하여 sample_inventory.ini에 정의한 각 노드에 대해 ping 명령을 실행하여 값이 반환되는지 확인합니다.
$ ansible all -i sample_inventory.ini -m ping
192.168.33.12 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.33.13 | SUCCESS => {
"changed": false,
"ping": "pong"
}
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
위와 같이 되어 있으면 OK입니다.
Reference
이 문제에 관하여(Ansible 실행 절차와 간단한 자습서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/wjtnk/items/011854dd638062c67363
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Vagrant.configure("2") do |config|
config.vm.define "host" do |node|
node.vm.box = "bento/centos-7"
node.vm.hostname = "host"
node.vm.synced_folder "host", "/vagrant"
node.vm.network :private_network, ip: "192.168.33.11"
node.vm.provision "shell", inline: <<-SHELL
sudo yum -y install epel-release
sudo yum install -y gcc python-pip python-devel openssl-devel libffi-devel
sudo pip install --upgrade pip setuptools
sudo pip install ansible
SHELL
end
config.vm.define "web" do |node|
node.vm.box = "bento/centos-7"
node.vm.hostname = "web"
node.vm.synced_folder "web", "/vagrant"
node.vm.network :private_network, ip: "192.168.33.12"
end
config.vm.define "db" do |node|
node.vm.box = "bento/centos-7"
node.vm.hostname = "db"
node.vm.synced_folder "db", "/vagrant"
node.vm.network :private_network, ip: "192.168.33.13"
end
end
$vagrant up
$vagrant ssh host
#秘密鍵、公開鍵の作成
$ssh-keygen -t rsa
#全てにenterでok
#仮想環境host(コントロールノード)に公開鍵登録
$ssh-copy-id localhost
#パスワード vagrant
#(ターゲットのーど)仮想環境web(192.168.33.12)に公開鍵登録
$ssh-copy-id 192.168.33.12
#パスワード vagrant
#(ターゲットのーど)仮想環境db(192.168.33.13)に公開鍵登録
$ssh-copy-id 192.168.33.13
#パスワード vagrant
$cd /vagrant
[host]
localhost
[web]
192.168.33.12
[db]
192.168.33.13
$ ansible all -i sample_inventory.ini -m ping
192.168.33.12 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.33.13 | SUCCESS => {
"changed": false,
"ping": "pong"
}
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
Reference
이 문제에 관하여(Ansible 실행 절차와 간단한 자습서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wjtnk/items/011854dd638062c67363텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)