美文网首页
ansible详解三(剧本扩展功能)

ansible详解三(剧本扩展功能)

作者: ManBu_x | 来源:发表于2019-08-26 19:28 被阅读0次

    day39 综合架构批量管理 ansible(自动化软件)

    一. 课程介绍:

    ansible剧本扩展功能
    ansible剧本整合功能 - 编写rsync一键化部署
    ansible剧本角色配置 - 标准化(麻烦)配置

    二. 知识回顾:

    ansible 172.16.1.41 -m setup (显示此主机的所有信息)

    ansible帮助信息查看方法:
    1. 查看官方资料文档
    2. ansible-doc -l ---查看所有模块信息
    ansible-doc -s 模块名 ---查看指定模块参数信息
    ansible-doc 模块名 ---显示的帮助信息更加详细

    取子级信息.png

    三. 剧本编写扩展功能:

    1. 剧本变量设置功能 三种方式(剧本 主机清单 命令行)
    2. 剧本变量注册功能 在剧本中显示指定输出

    - hosts: 172.16.1.41
       tasks:
         - name: boot crond server
           service: name=crond state=started
         - name: check server process
           shell: ps -ef|grep cron
           register: oldboy
         - name: show server status info
           debug: msg={{ oldboy.stdout_lines }}
    

    3. 剧本编写判断功能 根据条件信息执行任务 when条件变量信息
    4.剧本编写循环功能:
    列表循环变量:

        - hosts: 172.16.1.41
         tasks:
           - name: install software
             yum: name={{ item }} state=installed
             with_items:
               - rsync
               - nfs-utils
               - telnet-server
    
    字典方式设置循环.png

    5. 剧本忽略错误功能 剧本中shell模块使用时错误问题

     - hosts: 172.16.1.41
       tasks: 
          - name: install software
            shell: yum install -y htop
          - name: create user
            shell: useradd oldboy
            ignore_errors: yes  ---开启忽略错误功能
          - name: boot server
             shell: systemctl start htop
    

    =================================================

    补充: 使用shell万能模块会出现的问题:

    1. 实现批量管理操作会变得更加麻烦
    2. 实现剧本任务功能,不具有幂等性
    =================================================

    6. 剧本编写标签功能 调试剧本

         - hosts: 172.16.1.41
            tasks: 
               - name: install software
                 yum: name=rsync state=installed
               - name: copy config file
                 copy: src=/etc/hosts dest=/tmp
               - name: create user
                 user: name=reync shell=/sbin/nologin create_home=no
                  tsgs: oldboy01
               - name: create password file
                 copy: content='rsync_backup:oldboy123' dest=/etc/rsync.password mode=600
               - name: create backup dir
                  file: path=/backup state=directory
    

    ansible-playbook test_标签功能配置.yml -t oldboy01 --- 只执行标记任务
    ansible-playbook test_标签功能配置.yml --skip-tags oldboy01 --- 跳过标记任务
    ignore_errors: yes ---开启忽略错误功能
    tsgs: xxx ---标签

    7. 剧本提高执行效率
    取消剧本收集主机信息

       - hosts: 172.16.1.41
         gather_facts: no
         tasks: 
    

    PS: 取消了收集信息功能,判断功能也就无法使用了

    总结: 剧本执行慢的原因:

    1. SSH远程连接优化没有配置 关闭认证功能 关闭DNS反向解析功能
    2. yum下载软件慢 使用本地yum仓库
    3. 剧本执行收集信息慢
    4. 剧本执行过程必须完整 ==(yum--慢--ctrl+c--yum Lockfile is 调用)

    8. 剧本触发器功能配置

    - hosts: 172.16.1.41
       tasks:
         - name: push config file
           copy: src=/tmp/rsyncd.conf dest=/etc/
           notify: rsync_restart
         - name: boot server
           service: name=rsyncd state=started
       
       handlers:
          - name: rsync_restart
            service: name=rsyncd state=restarted
    

    PS:触发器任务会在所有任务执行完毕之后才执行

    四. ansible剧本整合功能

    剧本整合方式.png

    编写多个服务剧本:
    rsync
    nfs

    第一个里程: 编写主机清单

    vim /etc/ansible/hosts

    第二个里程: 创建存储分发文件目录
    image.png
    第三个里程: 编写一键化部署服务剧本:

    rsync_auto.yml

    第四个里程: 将多个剧本进行整合

    五. 课程知识总结

    1. ansible剧本编写功能
    a 剧本变量是指功能 3种方法
    b 剧本注册功能设置
    c 剧本判段功能设置
    d 剧本循环功能设置
    e 剧本忽略错误功能
    f 剧本标签设置功能
    g 剧本禁止收集功能
    h 剧本触发器功能配置

    2. ansible剧本整合方法
    编写服务一键化步骤: 配置主机清单--配置目录环境--编写剧本--测试--整合

    相关文章

      网友评论

          本文标题:ansible详解三(剧本扩展功能)

          本文链接:https://www.haomeiwen.com/subject/fkzrectx.html