当前位置: 首页 > 编程笔记 >

ansible 分隔角色中特定于分发的任务和变量

牧璞
2023-03-14
本文向大家介绍ansible 分隔角色中特定于分发的任务和变量,包括了ansible 分隔角色中特定于分发的任务和变量的使用技巧和注意事项,需要的朋友参考一下

示例

我们可以轻松地将特定于分发的任务和变量分离到不同的专用.yml文件中。Ansible帮助我们通过{{ ansible_distribution }}和自动识别目标主机分发{{ ansible_distribution_version }},因此我们只需要相应地命名分发专用.yml文件即可。

对于Ubuntu Xenial,基本角色目录树如下所示:

role
├── tasks
│   ├── main.yml
│   └── Ubuntu16.04.yml
└── vars
    └── Ubuntu16.04.yml

tasks/main.yml现在,我们可以自动在目标主机分发中包含适当的变量和任务。

任务/ main.yml

---

- name: include distribution specific vars
  include_vars: "{{ ansible_distribution }}{{ ansible_distribution_version }}.yml"

- name: include distribution specific install
  include: "{{ ansible_distribution }}{{ ansible_distribution_version }}.yml"

在内部tasks/Ubuntu16.06.yml,vars/Ubuntu16.04.yml我们现在可以分别为Ubuntu Xenial定义任务和变量。

 类似资料:
  • 这个结构有一些问题,我也不喜欢它。-这样合适吗?-我如何使用EC2的结果-创建角色,我想部署代码到服务器,这是刚刚创建的,我不知道ID。-还有其他方法可以将参数传递给角色吗?

  • 我已经为我的ansible Playbooks设置了基本目录架构。我定义了两个角色:-1)www:-管理所有的站点部署2)root:-执行与root相关的任务 我的根角色包含以下任务:-1)在目标服务器上设置一个新站点2)启动web服务器(apache,nginx) 我想在站点部署后重新启动我的apache服务器,为此,我在root roles的tasks下创建了一个名为apache-restar

  • 我正在尝试拆分字段(在某个分隔符“;”)并将结果插入表中。最大值为5个子字符串,由“;”分隔。最多只有5个水果。如果只有水果列,如何拆分字符串以获得单独的水果。如果果数少于5,其余列将返回NA。 我首先创建了新列并将其全部设置为null。我尝试了以下代码,但它不起作用,如果水果比列少,其余列将只取最后一个水果的值而不是null。 是否还有其他信息可用于拆分字符串?

  • myrole/tasks/main.yml myrole/defaults/main.yml 但是,当我将变量传递给我的角色时,它无法使用defaults/main.yml文件,并且得到以下错误: 似乎可以使用数组,但如果我使用哈希并希望访问带有item.xxx的变量,则返回此错误: 失败了!=>{“failed”:true,“msg”:“字段'args'具有无效值,该值似乎包含未定义的变量。错误

  • 本文向大家介绍ansible 使用角色,包括了ansible 使用角色的使用技巧和注意事项,需要的朋友参考一下 示例 Ansible使用角色的概念来更好地允许模块化代码并避免重复自己。 角色只是Ansible知道从何处加载vars文件,任务和处理程序的文件夹结构。一个例子可能看起来像这样: 然后,您可以将该角色用于基本的剧本,如下所示: 针对此剧本运行Ansible时,它将针对组中的所有主机并针对

  • 本文向大家介绍ansible 与Ansible Galaxy共享角色,包括了ansible 与Ansible Galaxy共享角色的使用技巧和注意事项,需要的朋友参考一下 示例 还可以轻松地与社区共享角色,或通过Ansible Galaxy下载由社区其他成员创建的角色。 Ansible附带了一个名为的命令行工具ansible-galaxy,可用于在ansible.cfg文件中定义的角色目录中安装角