5

我正在编写一个剧本来设置开发环境并为项目构建管道。我希望尽可能保持playbook与实际基础设施的分离,并且仅仅依赖组,所以我可以使用不同的组限制器,使用相同的命令在本地虚拟机和裸机上设置管道。Ansible,如何仅在用户存在的情况下将用户添加到组

现在的问题是,与当地的流浪盒我需要添加用户流浪汉泊坞窗组,其中与裸机服务器的一些任意用户。在剧本中处理这些变化的最佳做法是什么?尽可能保持抽象?我应该使用行为参数,主机变量,组变量,条件或事实收集这种东西?

保持剧本完全抽象化,没有任何硬编码值和对任何环境的适应性,甚至有可能或合理吗?

回答

1

为了回答您的具体问题:

请使用Vagrantfile覆盖用户变量。 例如,如果你是流浪汉,它将是ubuntu,如果你是流浪汉,它将是vagrant


更理论回答:

我有同样的问题与流浪者构建和我决定让所有的流浪者建立把它捡起来,并执行设置服务器保持一个ansible剧本的地方。

举例来说,剧本是这样的:

- hosts: all 
    tasks: 
    - name: remove apparmor 
     apt: name=apparmor purge=true state=absent 

,然后我的每一个流浪者资料库的wget的,并与

box.vm.provision :ansible do |ansible| 
    ansible.playbook = 'vagrant_extra.yml' 
    ansible.sudo = true 
    ansible.limit = 'all' 
end 

运行最好的解决办法,我认为是使用包装机提供你自己的流浪汉形象,所有这些东西预先支持在那里,以便

  1. 你不需要nee d要浪费时间自己设置图像,并且
  2. 您的包装箱与“产品”包装箱相同。
相关问题