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  
  • 相关阅读:
    Shared Memory in Windows NT
    Layered Memory Management in Win32
    软件项目管理的75条建议
    Load pdbs when you need it
    Stray pointer 野指针
    About the Rebase and Bind operation in the production of software
    About "Serious Error: No RTTI Data"
    Realizing 4 GB of Address Space[MSDN]
    [bbk4397] 第1集 第一章 AMS介绍
    [bbk3204] 第67集 Chapter 17Monitoring and Detecting Lock Contention(00)
  • 原文地址:https://www.cnblogs.com/scajy/p/11561383.html
Copyright © 2011-2022 走看看