在 ansible 中安装池化包

在 ansible 中安装池化包

我正在尝试建立一个具有多种角色的系统(例如,网络服务器、数据库服务器、邮件服务器等)

每个角色都需要安装一些软件包,这些软件包被定义为main.yml每个角色自己的任务。

ansible有没有办法检测(或在任务中明确说明)在某个特定的游戏中会有多个包安装,并允许将它们批处理在一起并跳过后面的安装步骤?

答案1

一个选项是标记安装任务并将安装包作为第一步:

ansible-playbook webserver.yml -t install_packages
ansible-playbook dbserver.yml -t install_packages
ansible-playbook mailserver.yml -t install_packages

然后运行剧本:

ansible-playbook webserver.yml
ansible-playbook dbserver.yml
ansible-playbook mailserver.yml

如果您想要加快播放速度并有条件地跳过安装,您可能需要为此目的创建并设置一个变量(when:skip_install)。

ansible-playbook -e skip_install=True ...

相关内容