• Ansible(三)


    Ⅰ. Playbook介绍

    Playbook其实就是ansible的一个任务列表,各任务按次序逐个在hosts中指定的所有主机上执行,即在所有主机上完成第一个任务后再开始第二个。在顺序运行某playbook时,如果中途发生错误,所有已执行任务都将回滚,多次执行是安全的,因为其结果均一致。使用YAML语法结构。

    Ⅱ. Playbook 的组成结构

    target section  #定义将要执行playbook的远程主机组

    variable section  #定义playbook运行时需要使用的变量

    task section  #定义将要在远程主机上执行的任务列表

    handler section  #定义task执行完成以后需要调用的任务

    Ⅲ. Playbook示例

    # cat test.yml 
    ---
    - hosts: all   #指定所有主机组
      vars:          #指定变量
        http_dir: /etc/httpd/conf
      remote_user: root #指定root执行
      tasks:
       - name: Install NTP #安装NTP服务
         yum: name=ntp state=installed  
      
       - name: Enable NTP #开启NTP服务 
         service: name=ntpd state=started enabled=yes  
    
       - name: CP files #通过执行cp语句拷贝文件
         command: cp /etc/hosts /etc/hosts.bk
    
       - name: copy module #通过copy module复制配置文件
         copy:
           src: "{{ item.src }}"
           dest: "{{ item.dest }}"
           owner: root
           group: root
           mode: 0644
         with_items:
         - {
           src: "/tmp/httpd.conf",
           dest: "/etc/httpd/conf/httpd.conf" 
           }
         - {
           src: "/tmp/httpd-vhosts.conf",
           dest: "/etc/httpd/conf/httpd-vhosts.conf"
           }
    
        - name: copy file and restart httpd #备份文件,成功后通过notify触发handlers重启HTTPD
          copy: "src={{http_dir}}/httpd.conf dest=/tmp/httpd.conf.bk"
          notify:
           - restart httpd service
        handlers:
         -name: restart httpd service
          service: name=httpd state=restarted

    通过以下命令检查playbook是否有语法错误:

    # ansible-playbook test.yml --syntax --check

    执行playbook:

    # ansible-playbook test.yml
     
  • 相关阅读:
    python之np.tile()
    python中easydict的简单使用
    Python字典(Dictionary)update()方法
    Flutter学习之导航与数据的传输
    Flutter学习之重叠布局
    Flutter学习之重叠布局
    Flutter学习之纵向布局
    Flutter学习之纵向布局
    Flutter学习之GridView
    Flutter学习之GridView
  • 原文地址:https://www.cnblogs.com/wayneiscoming/p/7520391.html
Copyright © 2020-2023  润新知