Tuo*_*nen 5 virtual-machine configuration-management ansible docker ansible-playbook
我正在编写一本手册来设置开发环境并为项目构建管道.我希望尽可能地将playbook与实际基础设施分离,并且只依赖于组,因此我可以使用相同的命令在本地VM和裸硬件中设置管道,只需使用不同的组限制器.
现在的问题是,使用本地Vagrant盒子我需要将用户流浪者添加到docker组,而裸机服务器则需要一些任意用户.在剧本中处理这些变化的最佳做法是什么,尽可能保持抽象?我应该使用行为参数,主机变量,组变量,条件或事实收集这类东西吗?
是否有可能或合理地保持剧本完全抽象,没有任何硬编码的价值和对任何环境的适应性?
回答您的具体问题:
使用 Vagrantfile 覆盖的用户变量。例如,ubuntu
如果在 aws 中或vagrant
如果您在 vagrant 中,则会出现这种情况。
更理论的答案:
我对 vagrant 构建也有同样的问题,我决定在某个地方保留一个 ansible 剧本,以便所有 vagrant 构建都可以拾取它并执行它来设置服务器。
例如,剧本如下所示:
- hosts: all
tasks:
- name: remove apparmor
apt: name=apparmor purge=true state=absent
Run Code Online (Sandbox Code Playgroud)
然后我的每个流浪存储库都得到它并运行它
box.vm.provision :ansible do |ansible|
ansible.playbook = 'vagrant_extra.yml'
ansible.sudo = true
ansible.limit = 'all'
end
Run Code Online (Sandbox Code Playgroud)
我认为最好的解决方案是使用打包程序来提供您自己的流浪图像,该图像中预先支持了所有这些内容,以便
归档时间: |
|
查看次数: |
629 次 |
最近记录: |