Vagrant 打包机&x2B;ansible,如何指定库存文件
使用vagrant时,我可以在vagrant文件中指定库存文件 例如:Vagrant 打包机&x2B;ansible,如何指定库存文件,vagrant,ansible,digital-ocean,packer,Vagrant,Ansible,Digital Ocean,Packer,使用vagrant时,我可以在vagrant文件中指定库存文件 例如: config.vm.provision "ansible" do |ansible| ansible.playbook = "my_folder/playbook.yml" ansible.inventory_path = "my_folder/inventory_file" end 使用packer时如何配置库存文件 我在packer的官方文档中看不到任何相关信息: 我需要指定清单文件,因为当我运行我的
config.vm.provision "ansible" do |ansible|
ansible.playbook = "my_folder/playbook.yml"
ansible.inventory_path = "my_folder/inventory_file"
end
使用packer时如何配置库存文件
我在packer的官方文档中看不到任何相关信息:
我需要指定清单文件,因为当我运行我的packer.json时,这是输出:
digitalocean: Executing Ansible: ansible-playbook /tmp/my_folder/playbook.yml -c local -i "127.0.0.1,"
digitalocean:
digitalocean: PLAY [foo] ******************************************************************
digitalocean: skipping: no hosts matched
Packer似乎在使用一个名为“127.0.0.1”的库存文件,我不知道为什么
如何指定库存文件
谢谢 嗯,我的猜测是,由于ansible with packer使用本地连接(
-c local
),因此不需要提供清单文件
您只需确保在您的playbook中,您的
-hosts
行包含all
或127.0.0.1
,并且运行正常。设置hosts:all
如果playbook专门用于打包机构建,则运行正常
如果您使用的playbook还需要针对清单文件中指定的主机运行,例如:
[web_servers]
web1.example.com
web2.example.com
[db_servers]
db.example.com
…然后,您可以将inventory\u groups
属性添加到您的ansible local
provisioner,打包程序将为这些组分配localhost:
有关更多详细信息,请参阅Packer文档的可选部分是否可以显示Packer.json的ansible部分?“provisioners”:[{“type”:“file”,“source”:“my_folder”,“destination”:“/tmp/”},{“type”:“shell”,“script”:“provisioner.sh”},{“type”:“ansible local”,“staging_directory”:“/tmp/my_folder”,“playbook_file”:“my_folder/playbook.yml”#这是一个本地playbook}]我正在将我的本地ansible文件夹复制到/tmp/my_文件夹,然后运行ansible,但我无法指定我的清单文件:/
"provisioners": [
{ "type": "file", "source": "my_folder", "destination": "/tmp/" },
{ "type": "shell", "script": "provisioner.sh" },
{
"type": "ansible-local",
"staging_directory": "/tmp/my_folder",
"playbook_file": "my_folder/playbook.yml",
"inventory_groups": "web_servers"
}
]