blogの整理を通してAnsibleのベストプラクティスや環境毎に変更しないと行けない項目を学べたので、
以前準備した開発環境のリポジトリも整理しなおした。
またvagrant provision ${target_vm}
をすると対象VM以外も一緒にプロビジョニングされてしまう問題があったので対応した。
調べた結果、Vagrant経由でAnsiblewを使う際に使われるインベントリファイルで全てのVMが一緒に書かれていたためだった。
1
2
3
4
5
|
$ cat .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory
# Generated by Vagrant
centos ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='vagrant' ansible_ssh_private_key_file='/Users/masumi/works/develop/.vagrant/machines/centos/virtualbox/private_key'
ubuntu ansible_ssh_host=127.0.0.1 ansible_ssh_port=2202 ansible_ssh_user='ubuntu' ansible_ssh_private_key_file='/Users/masumi/works/develop/.vagrant/machines/ubuntu/virtualbox/private_key'
|
vagrant_ansible_inventory
ファイルはVagrant で自動生成されるので触りたくない。
そこでansible.raw_arguments フィールドを使ってansible-playbook コマンドに*-l* フラグを渡して実行するように変更した。
修正結果は下のようになった。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
config.vm.define :ubuntu do |node|
node.vm.box = "ubuntu16"
node.vm.box_url = "https://atlas.hashicorp.com/ubuntu/boxes/xenial64/versions/20170617.0.0/providers/virtualbox.box"
node.vm.hostname = "ubuntu00.dev.lonet"
node.vm.network "private_network", ip: "192.168.34.11"
node.vm.network "public_network"
node.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end
node.vm.provision "ansible" do |ansible|
ansible.playbook = "provisioning/playground.yml"
ansible.limit = 'all'
ansible.raw_arguments = [
"-l", "ubuntu",
"-e", "ansible_python_interpreter=/usr/bin/python3"
]
end
end
config.vm.define :centos do |node|
node.vm.box = "centos/7"
node.vm.box_url = "https://atlas.hashicorp.com/centos/boxes/7/versions/1704.01/providers/virtualbox.box"
node.vm.hostname = "cent01.dev.lonet"
node.vm.network "private_network", ip: "192.168.34.12"
node.vm.network "public_network"
node.vm.provision "ansible" do |ansible|
ansible.playbook = "provisioning/playground.yml"
ansible.limit = 'all'
ansible.raw_arguments = [
"-l", "centos",
]
end
end
|
他には下を行っている。
- Ubuntuでgo1.8.3のビルド時にメモリ不足になったためメモリを追加
- Ubuntuではpython3しか存在しないためansible_python_interpreter で指定