Ansible使用角色的概念来更好地允许模块化代码并避免重复自己。
角色只是Ansible知道从何处加载vars文件,任务和处理程序的文件夹结构。一个例子可能看起来像这样:
apache/ ├── defaults │ └── main.yml ├── files │ ├── mod-pagespeed-stable_current_i386.deb │ ├── mod-pagespeed-stable_current_i386.rpm │ ├── mod-pagespeed-stable_current_amd64.deb | └── mod-pagespeed-stable_current_x86_64.rpm ├── tasks │ ├── debian.yml │ ├── main.yml │ └── redhat.yml ├── templates │ ├── httpd.conf.j2 │ └── sites-available │ └── virthualhost.conf.j2 └── vars ├── debian └── redhat
然后,您可以将该角色用于基本的剧本,如下所示:
- hosts: webservers roles: - apache
针对此剧本运行Ansible时,它将针对组中的所有主机并针对该主机webservers运行apache上面定义的角色,自动为该角色加载任何默认变量并运行中包含的所有任务tasks/main.yml。Ansible还知道要在角色友好位置查找某些类型的文件:
如果存在role / x / tasks / main.yml,则其中列出的任务将被添加到剧本中
如果存在role / x / handlers / main.yml,则其中列出的处理程序将添加到播放中
如果Roles / x / vars / main.yml存在,则其中列出的变量将添加到播放中
如果存在role / x / meta / main.yml,则其中列出的所有角色依赖项都将添加到角色列表中(1.3及更高版本)
(在角色中)任何副本,脚本,模板或包含任务都可以引用role / x / {文件,模板,任务} /(目录取决于任务)中的文件,而不必相对或绝对地进行路径
本文向大家介绍ansible 与Ansible Galaxy共享角色,包括了ansible 与Ansible Galaxy共享角色的使用技巧和注意事项,需要的朋友参考一下 示例 还可以轻松地与社区共享角色,或通过Ansible Galaxy下载由社区其他成员创建的角色。 Ansible附带了一个名为的命令行工具ansible-galaxy,可用于在ansible.cfg文件中定义的角色目录中安装角
根据Ansible的文档,一个剧本是: ...一个非常简单的配置管理和多机部署系统的基础,不像任何已经存在的系统,并且非常适合部署复杂的应用程序。 同样,根据这些文档,一个角色是: 如果有人能给我解释这些差异,我对Ansible的理解将会大大提高! 剧本vs角色vs以及中的类似条目 如果剧本是在YAML文件中定义的,那么角色在哪里定义? 除了Ansible服务器上的之外,如何使用可用的剧本/角色添
本文向大家介绍ansible 角色依存关系,包括了ansible 角色依存关系的使用技巧和注意事项,需要的朋友参考一下 示例 角色还使您可以通过创建meta/main.yml带有dependencies块的文件来将其他角色定义为依赖项: 也可以将值传递给依赖角色中的参数/变量: 甚至有条件地执行依赖角色: 依赖角色始终在依赖它们的角色之前执行。而且,它们仅执行一次。如果两个角色声明与其依赖关系相同
这个结构有一些问题,我也不喜欢它。-这样合适吗?-我如何使用EC2的结果-创建角色,我想部署代码到服务器,这是刚刚创建的,我不知道ID。-还有其他方法可以将参数传递给角色吗?
简介 Vargrant是一个管理虚拟机环境的工具,允许你在不同的虚拟化和云平台 配置和使用可再生的工作环境.它也集成了Ansible作为对虚拟机的服务提供者,而且这两个工具配合的很好. 这个指南会叙述如何同时配合使用Vagrant和Ansible. 如果你对Vagrant还不了解,你应该看看这个文档 the documentation. 假设你已经安装了Ansible,在Git上检测,运行的也很好
我认为构建一个包含本地服务器、目录文件和host_Vars文件夹的ansible角色会很好。因此,通过在ansible从工作目录上安装该角色,并将清单名称作为参数传递,我可以在ansible文件夹中复制与该名称相关的文件,并在下一步中将其用作清单文件和变量,以便部署到远程服务器上。 首先,有没有人有更好的主意来制作一个动态的库存文件?使用本地git服务器和存储库还是shell命令? 主要问题:如何