1. ansible-playbook文件复用
  1.1) include 和 import区别

  include(动态):在运行时导入

  • --list-tags,--list-tasks不会显示到输出
  • 不能使用notify触发来自include内处理程序名称(handlers)

import(静态):在playbook解析时预先导入

  • 不能与循环一起使用
  • 将变量用于目标文件或角色名称时,不能使用inventory(主机/主机组等)中的变量

2. import_playbook
  2.1) import_palybook结构详解图

  

3. 一下简单演示意思使用
  3.1) 编写lnmp.yaml的文件测试

 1 [root@test-1 bin]# vim nginx.yaml
2 [root@test-1 bin]# cat nginx.yaml
3 ---
4 - hosts: web1
5 gather_facts: no
6
7 tasks:
8 - name: Install nginx
9 debug: msg="test nginx "
10
11 [root@test-1 bin]# vim php.yaml
12 [root@test-1 bin]# cat php.yaml
13 ---
14 - hosts: web1
15 gather_facts: no
16
17 tasks:
18 - name: Install php
19 debug: msg="test php "
20
21 [root@test-1 bin]# vim mysql.yaml
22 [root@test-1 bin]# cat mysql.yaml
23 ---
24 - hosts: web1
25 gather_facts: no
26
27 tasks:
28 - name: Install mysql
29 debug: msg="test mysql "

3.2) 编写improt执行文件引用

1 [root@test-1 bin]# vim import_lnmp.yaml
2 [root@test-1 bin]# cat import_lnmp.yaml
3 #import lnmp
4 ---
5 - import_playbook: nginx.yaml
6 - import_playbook: php.yaml
7 - import_playbook: mysql.yaml

3.3) 检查配置文件是否正常

 1 [root@test-1 bin]# ansible-playbook --syntax-check nginx.yaml
2
3 playbook: nginx.yaml
4 [root@test-1 bin]# ansible-playbook --syntax-check php.yaml
5
6 playbook: php.yaml
7 [root@test-1 bin]# ansible-playbook --syntax-check mysql.yaml
8
9 playbook: mysql.yaml
10 [root@test-1 bin]# ansible-playbook --syntax-check import_lnmp.yaml
11
12 playbook: import_lnmp.yaml

3.4) 执行improt文件

 1 [root@test-1 bin]# ansible-playbook  import_lnmp.yaml
2
3 PLAY [web1] ************************************************************************************************************************************
4
5 TASK [Install nginx] ***************************************************************************************************************************
6 ok: [192.168.200.132] => {
7 "msg": "test nginx "
8 }
9 ok: [192.168.200.133] => {
10 "msg": "test nginx "
11 }
12
13 PLAY [web1] ************************************************************************************************************************************
14
15 TASK [Install php] *****************************************************************************************************************************
16 ok: [192.168.200.132] => {
17 "msg": "test php "
18 }
19 ok: [192.168.200.133] => {
20 "msg": "test php "
21 }
22
23 PLAY [web1] ************************************************************************************************************************************
24
25 TASK [Install mysql] ***************************************************************************************************************************
26 ok: [192.168.200.132] => {
27 "msg": "test mysql "
28 }
29 ok: [192.168.200.133] => {
30 "msg": "test mysql "
31 }
32
33 PLAY RECAP *************************************************************************************************************************************
34 192.168.200.132 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
35 192.168.200.133 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

4.include_tasks和import_tasks结构详细图

  

5. 编写include_tasks文件
  5.1) 编写include_tasks测试文件

 1 [root@test-1 bin]# vim tasks1.yaml
2 [root@test-1 bin]# cat tasks1.yaml
3 #tasks1.yaml
4 ---
5 - name: tasks1
6 debug: msg="hello {{user}}"
7
8 [root@test-1 bin]# vim tasks2.yaml
9 [root@test-1 bin]# cat tasks2.yaml
10 #tasks2.yaml
11 ---
12 - name: tasks2
13 debug: msg="hello {{user}}"

5.2) 编写include_tasks文件

1 [root@test-1 bin]# vim include_tasks.yaml
2 [root@test-1 bin]# cat include_tasks.yaml
3 ---
4 - hosts: web1
5 gather_facts: no
6
7 tasks:
8 - include_tasks: tasks1.yaml
9 - include_tasks: tasks2.yaml

5.3) 检查配置文件

1 [root@test-1 bin]# ansible-playbook --syntax-check  include_tasks.yaml
2
3 playbook: include_tasks.yaml

5.4) 执行include_tasks文件

 1 [root@test-1 bin]# ansible-playbook  include_tasks.yaml
2
3 PLAY [web1] ************************************************************************************************************************************
4
5 TASK [include_tasks] ***************************************************************************************************************************
6 included: /ansible/import/bin/tasks1.yaml for 192.168.200.132, 192.168.200.133
7
8 TASK [tasks1] **********************************************************************************************************************************
9 ok: [192.168.200.132] => {
10 "msg": "hello tasks1"
11 }
12 ok: [192.168.200.133] => {
13 "msg": "hello tasks1"
14 }
15
16 TASK [include_tasks] ***************************************************************************************************************************
17 included: /ansible/import/bin/tasks2.yaml for 192.168.200.132, 192.168.200.133
18
19 TASK [tasks2] **********************************************************************************************************************************
20 ok: [192.168.200.132] => {
21 "msg": "hello tasks2"
22 }
23 ok: [192.168.200.133] => {
24 "msg": "hello tasks2"
25 }
26
27 PLAY RECAP *************************************************************************************************************************************
28 192.168.200.132 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
29 192.168.200.133 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

ansible-playbook文件复用的更多相关文章

  1. ansible playbook实践(四)-如何调试写好的playbook文件

    有时,我们写了一个长长,功能很强悍的yaml文件,但是,我们有可能会担心,写的yaml文件是否正确,是否有漏洞危机,毕竟是要修改线上的机器,那么,有可能我们可以从以下几个检查维度来进行,确保在大规模应 ...

  2. ansible playbook模式及语法

    一.什么是playbook及其组成 什么是playbook playbook 翻译过来就是"剧本" playbook的组成 play:定义的是主机的角色 task:定义的是具体执行 ...

  3. ansible playbook详解

    ansible playbook是由yml语法书写,结构清晰,可读性强,所以必须掌握yml基础语法 语法 描述 缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tabs键 ...

  4. Ansible playbook 编程

    Ansible playbook 编程详解与各种小案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: ...

  5. (三)ansible playbook

    一,YAML语法 YAML的语法和其他高阶语言类似并且可以简单表达清单.散列表.标量等数据结构.(列表用横杆表示,键值对用冒号分割,键值对里又可以嵌套另外的键值对) YAML文件扩展名通常为.yaml ...

  6. Ansible playbook API 开发 调用测试

    Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...

  7. ansible playbook批量改ssh配置文件,远程用户Permission denied

    最近手里的数百台服务器需要改/etc/ssh/sshd_config的参数,禁止root直接登陆,也就是说 [root@t0 ~]# cat /etc/ssh/sshd_config | grep R ...

  8. ansible playbook 变量

    变量优先级 在命令中定义的变量(-e参数指定的) 在inventory中定义的变量(ansible_ssh_user等) 其他变量(role中.play中) 系统通过father_facts定义的变量 ...

  9. ansible笔记(11):初识ansible playbook(二)

    ansible笔记():初识ansible playbook(二) 有前文作为基础,如下示例是非常容易理解的: --- - hosts: test211 remote_user: root tasks ...

随机推荐

  1. 解决ASP.NET上传文件大小限制------(转载人家的博客很好用,略作修改)

    解决ASP.NET上传文件大小限制 (2012-06-26 15:18:01) 转载▼ 标签: it   第一种方法,主要适用于IIS6.0版本 一.修改配置Web.Config文件中的httpRun ...

  2. 阿里云体验实验室 体验教程《Linux指令入门-系统管理》

    体验平台简介 阿里云开发者实验室提供免费云资源和丰富的场景化实践,旨在帮助开发者在学习应用技术,了解阿里云产品的特性. 阿里云体验实验室地址:https://developer.aliyun.com/ ...

  3. centos6.5环境下安装yum工具

    前不久因为安装数据库时动了yum安装文档中的参数,导致yum安装软件时总是出现no package等问题,决定重装yum工具. 第一步:下载原有yum安装包 [root@linux-node3 ~]# ...

  4. 从头看看Tomcat启动Spring容器的原理

    通过带注解Spring Boot可以启动一个web容器,并初始化bean容器.那么Tomcat启动并初始化spring容器的原理是怎样的? Tomcat启动web程序时会创建一对父子容器(图1): 有 ...

  5. 逐浪CMS最新V8.1.6 Beta版安装部署操作

    首先要获得内部最新版本的CMS,官网有公开发布版本,但不属于内部最新的,内部最新的CMS系统是不断的有功能的迭代更新. 操作系统建议是win10.1.windows server2012\2016\2 ...

  6. 本机ping不通虚拟机,但虚拟机可以ping通本机

    在各自网络都连接的情况下,本机ping不通虚拟机,但虚拟机可以ping通本机时解决方案: 1.linux虚拟机中连接方式选择NAT模式 2.本地启动VMnet8,然后选择VMnet8的属性,手动输入和 ...

  7. php Zookeeper使用踩坑

    用的是Zookeeper扩展,Php版本为7.2.17,下载地址: https://pecl.php.net/package/zookeeper 用的是0.6.4版本 创建节点官方给的示例如下: &l ...

  8. python-字符串,字典,列表

    0x01 字符串 python单双引号都可以 str = "hello world" str_test = "yicunyiye" print(str,str_ ...

  9. kafka学习(三)kafka生产者,消费者详解

    文章更新时间:2020/06/14 一.生产者 当我们发送消息之前,先问几个问题:每条消息都是很关键且不能容忍丢失么?偶尔重复消息可以么?我们关注的是消息延迟还是写入消息的吞吐量? 举个例子,有一个信 ...

  10. JVM 的参数类型

    标配参数 -version -help X 参数 -Xint:解释执行 -Xcomp:第一次使用就编译成本地代码 -Xmixed:混合模式 XX 参数 Boolean 类型:-XX:+ 或者 - 某个 ...