zoukankan      html  css  js  c++  java
  • ansible-playbook文件复用

    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  
  • 相关阅读:
    【Android】 ANR异常及traces信息解析
    【Android】Android 开机广播的使用
    【Ardunio】开发入门教程【二】数据类型
    java中字符串转化为Ascii码
    popupWindow的操作和使用
    android界面被键盘挤上去的解决办法
    java中数据类型的转换
    Android Application 对象介绍
    Android 封装http请求的工具类
    Android中关于多个按钮放在一起操作的方法
  • 原文地址:https://www.cnblogs.com/scajy/p/11561383.html
Copyright © 2011-2022 走看看