我的一些客户的网站上有虚拟机,我想使用Ansible进行管理。
我确信角色是要走的路。我可以将“web server”和“mail daemon”等常用角色分配给我的客户主机,也可以使用参数化角色将多个Wordpress实例部署到一个主机。
我不确定如何将这些角色分配给我的客户主机。使用库存文件,组,playbooks,host_vars,group_vars等将主要角色(包括多个参数化角色分配)分配给主机的最佳做法是什么?我应该将每个主机添加到剧本并在那里分配角色吗?我应该只为组分配角色(但是我不能添加多个参数化角色?或者我可以使用host_vars或类似的东西)?
答案 0 :(得分:3)
我现在正在做的是在我的每个客户的项目目录中创建一个目录deploy
。这些目录包含一个主机文件,其中包含客户端的主机(通常只有一个)和两个剧本:configure.yml
和deploy.yml
。我将主机分组并将角色分配给组:
- name: Basic configuration
hosts: all
user: root
roles:
- common
我不使用包含我所有不同客户端主机的主机文件,因为我想我不想在同一次运行中在所有这些主机上播放书籍。
公共角色链接到部署目录(也可以使用roles_path选项)。