ansible学习笔记9-playbooks之include

task include files

在不同tasks之间plays和playbooks可以重复调用。include files可以达成目的

系统通过使用include task来完美实现role定义,记住,playbook中的play最终

目的是映射系统群到多个roles中

cat tasks/foo.yml

---

# possibly saved as tasks/foo.yml

- name: placeholder foo

command: /bin/foo

- name: placeholder bar

command: /bin/bar

include指令类似如下,可以像普通tasks命令一样在playbook中混合使用

tasks:

- include: tasks/foo.yml

你也可以传输变量到includes指令,称之为parameterized include

如何分发多个WordPress实例,我可以包涵所有WordPress命令到一个WordPress.yml

文件

tasks:

- include: wordpress.yml wp_user=timmy

- include: wordpress.yml wp_user=alice

- include: wordpress.yml wp_user=bob

如果你使用的是ansible1.4以上版本,include语法简化了匹配roles,同时允许

传递参数列表和字典:

tasks:

- { include: wordpress.yml,wp_user:timmy,ssh_keys:[‘keys/one.txt‘,‘keys/two.txt‘]}

也可以这样引用它们{{wp_user}}

从1.0开始,ansible还支持另外一种变量传参到include files的方式-结构化变量

方法如下

tasks:

- include: wordpress.yml

vars:

wp_user: timmy

ssh_keys:

- keys/one.txt

- keys/two.txt

playbooks也同时可以include引用其它playbooks

Includes 功能也可以被用在用 handlers 区域,例如,如果你希望定义如何重启apache,你只需要定义一个playbook,只需要做一次.编辑类似如下样例的 handers.yml:

---

# this might be in a file like handlers/handlers.yml

- name: restart apache

service: name=apache state=restarted

然后像如下方式在 main playbook 的询问引用play即可:

handlers:

- include: handlers/handlers.yml

Includes也可以在常规不包含 included 的tasks和handlers文件中混合引用. Includes常被用作将一个playbook文件中的命令导入到另外一个playbook.这种方式允许我们定义由其它playbooks组成的顶层playbook(top-level playbook).

- name: this is a play at the top level of a file

hosts: all

remote_user: root

tasks:

- name: say hi

tags: foo

shell: echo "hi..."

- include: load_balancers.yml

- include: webservers.yml

- include: dbservers.yml

时间: 2024-09-27 07:45:26

ansible学习笔记9-playbooks之include的相关文章

运维自动化工具ansible学习笔记

利用五一假期的时间学习了下ansible,看了一天的官方文档,对其中需要注意的地方,做下笔记整理下思绪. 一.简介 Ansible是与puppet.saltstack类似的集群管理工具,其优点是仅需要ssh和Python即可使用,而不像puppet.saltstack那样都需要客户端.puppet与saltstack这2个软件都需要安装客户端,而saltstack与ansible很相似,都是属于python流的,但saltstack不是很稳定:puppet虽然稳定,但命令执行的时候,需要配置模块

ansible学习笔记

一.ansible的基本简介: ansible式什么? Ansible 是一个适用于成百上千规模的受控节点的配置管理.应用程序部署.内部服务编排等诸多功能于一身的极为简单的IT运维自动化工具引擎,基于Python开 发.她无需代理,很容易部署,除SSH外没有其他安全基础设施/配置要求.她使用了一个非常简单的语言(YAML),让你可以编写自己的自动化作业脚本. ansible式怎样工作的? Ansible连接到受控机,并推送一个称为"Modules"的应用程序到受控机上,Ansible然

ansible学习笔记4-playbooks之setup

ansible 192.168.80.20 -m setup 192.168.80.20 | SUCCESS => {     "ansible_facts": {         "ansible_all_ipv4_addresses": [             "192.168.80.20"         ],          "ansible_all_ipv6_addresses": [          

ansible学习笔记(一)

最近在学习使用ansible,为了未来的大规模部署应用做准备,这东西比我之前用过的puppet,saltstack都简便一点,没有client端,也不需要额外配置,基本上手技能用,据说在国外的热门程度目前也超过saltstack了. 下面就开始零星的记录吧. 确保服务在running状态 tasks:   - name: make sure apache is running     service: name=httpd state=running 写web server的vhost配置文件可

我的Ansible学习笔记

Ansible常见错误 http://afewbug.com/article/26官方文档 http://docs.ansible.com/ansible/安装配置 http://sofar.blog.51cto.com/353572/1579894 目录一.介绍二.yum安装三.Ansible配置四.模块五.playbook六.实战演练--用Ansible实现LANMP的安装 注意:以下实验环境均为关闭selinux和清空防火墙配置,需要把/etc/my.cnf 改为/etc/my.cnf.b

ansible学习笔记1-Inventory文件

Inventory文件 Ansible可同时操作属于一个组的多台主机.组合主机之间的关系通过inventory文件配置,默认的文件路径为/etc/ansible/hosts 除了默认文件外,你还可以同时使用多个inventory文件,也可以从动态源或云上拉取inventory配置信息 ------------------------------------------------------------------------ 主机与组 /etc/ansible/hosts文件的格式与windo

Ansible 学习笔记

最近因为需要管理很多台机器,而这些机器又需要频繁重新安装,实在受不了Puppet需要在每个客户机上都安装一遍,于是转头开始学些Ansible.根据这段时间的使用,这个确实是神器,唯一的感觉就是相见恨晚. 下面纪录一下最近的学习心得. Ansible是基于单客户端,多服务器端的模式.这可能是和Puppet等基于单服务器端,多客户端的最大不同. Ansible是用Python编写的,易于扩展,便于调试 下面以最常见的需要客户端和所有服务器建立ssh信任关系为例,看看ansible多么简单.首先建立h

ansible学习笔记(二):ansible for CentOS6安装

### 最近有点儿时间了,再继续学习Asible,本节尝试使用pip安装ansible for CentOS6.5,其中OS是最小化安装. 2.2 Installing ansible on CentOS 6.5 2.2.1 pip安装Ansible ###(1) 准备环境: # python -V       # 版本:Python 2.6.6 # yum install gcc gcc-c++ # yum install git -y # yum install python-devel p

ansible 学习笔记(上)

运维工具 当前常见的运维工具(Configuration)有以下一种puppret(ruby)saltstack(python)chefcfengine.... Command and Control; fabricfunc 程序发布: 手动发布 脚本发布 发布程序(运维程序) 程序发布要求:1.不能影响用户体验:2.系统不能停机:3.不能导致系统故障或造成系统完全不可用: 灰度发布模型(考虑以下两种维度):1.主机:2.用户: 发布思路: /webapps/tuangou /webapps/t