用Ansible进行Vagrant的配置步骤
首先
以下是一个关于如何从Vagrant执行Ansible的设置方法的备忘录
参考:Vagrant官方文档
如果要分别启动的话
-
- $ 开启Vagrant
- $ 通过hosts文件执行ansible-playbook site.yml –sudo -k
※ -i: 指定 Inventory 文件
※ hosts: Inventory 文件
※ site.yml: play-book 文件
※ -k 选项: 提问 SSH 密码(会弹出提示框)
如果直接从Vagrant进行配置,则可以这样做。
将Ansible的配置管理设置添加到Vagrantfile中。
Vagrant.configure(2) do |config|
config.vm.define "web" do |node|
node.vm.box = "centos/7"
node.vm.hostname = "web"
node.vm.network :private_network, ip: "192.168.33.40"
end
config.vm.define "dbserver" do |node|
node.vm.box = "centos/7"
node.vm.hostname = "dbserver"
node.vm.network :private_network, ip: "192.168.33.41"
end
#
# Run Ansible from the Vagrant Host
#
config.vm.provision "ansible" do |ansible|
ansible.ask_sudo_pass = true
ansible.playbook = "site.yml"
ansible.groups = {
"group1" => ["web"]
"group2" => ["dbserver"]
}
end
end
ansible.ask_sudo_pass = trueにより-kオプションと同等
ansible.playbook = “site.yml”によりplay-bookファイルを指定
currentディレクトリのからパスで指定する
ansible.groupによりInventoryファイルにおけるグループを作成
上記の例では実行により.vagrant/provisioners/ansible/inventory/ディレクトリ上にvagrant_ansible_inventoryというInventoryファイルが以下のように作成される
# Generated by Vagrant
web ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
dbserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
[group1]
web
[group2]
dbserver
在Vagrant中,将组名和主机名与Ansible组件的名称匹配。
执行
$ vagrant up/reload --provision
$ vagrant provision