zoukankan      html  css  js  c++  java
  • ansible的playbook基础

    playbook概念

           playbook由两部分组成
           1.play   指定hosts
           2.tasks  

               name:   namedesc

               ad-hoc(ansible模块名称): -a(参数)

    playbook和ad-hoc的区别

          1.playbook是对ad-hoc的一种编排方式
          2.playbook可以持久运行,而ad-hoc只能临时运行
          3.playbook适合复杂任务,ad-hoc适合快速简单任务
          4.playbook能控制任务执行的先后顺序

          

        ansible-playbook http.yml -i /home/admin/hosts

    playbook部署jboss

            su - jboss -c "LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=/var/run/jboss-as/jboss-as-standalone.pid /usr/share/jboss-as/bin/standalone.sh -c standalone.xml"

            http://repo1.maven.org/maven2/org/jboss/modules/jboss-modules/1.1.5.GA/jboss-modules-1.1.5.GA.jar

            

            mv jboss-modules-1.1.5.GA.jar jboss-modules.jar

                   

         

          

      ansible语法

          handlers
           Handlers 也是一些 task 的列表,通过名字来引用,它们和一般的 task 并没有什么区别.Handlers 是由通知者进行 notify, 如果没有被 notify,handlers 不会执行.不管有多少个通知者进行了 notify,等到 play 中的所有 task 执行完成之后,handlers 也只会被执行一次

           Handlers最佳的应用场景是用来重启服务,或者触发系统重启操作.除此以外很少用到了
           handlers会按照声明的顺序执行

           tags是一种实现部分运行playbook的机制
           在一个大型的playbook,那能够只运行其中特定部分的配置而无需运行整个playbook 将会很有用.

           register

             

            重新配置整个基础设施
                  ansible-playbook -i production site.yml

            只重新配置基础设施中的所有的NTP
                 ansible-playbook -i production site.yml --tags ntp

           只重新配置我的Web服务器 有单独的角色执行文件
                 ansible-playbook -i production webservers.yml

    ansible变量的三种方式

         1.引用变量的格式      {{ var }}.tar.gz

         2.变量的指定方式
           1.通过playbook文件中的play进行变量定义
              定义变量 通过vars关键字进行定义
              vars:
                 - k1: v1
                - k2: v2
            指定vars_files
            通过关键字vars_files关键字指定统一变量文件

              

               

          2.通过inventory主机清单进行变量定义

             

             hosts_vars
             group_vars

         3.通过执行playbook时使用-e参数指定变量
             ansible-playbook -i hosts -e "hosts=webserver"

         4.group变量
            系统有一个对所有主机设置的默认组,组名是all
            默认情况下 group_vars目录中文件名和hosts清单中组名保持一致.其他组是无法使用当前组变量文件中的变量
           系统提供了一个特殊组 all,只需要在group_vars目录下创建一个all文件,编写好变量。所有组就都可以使用

         5.host变量
           在host_vars目录中创建一个文件,文件名和inventory清单中的主机名称要保持完全一致,如果是IP地址,则创建相应的IP地址文件即可.

        6.变量优先级
           命令行-e传递参数 》play vars_files定义变量 》play vars定义变量 》hosts_vars主机文件变量 》 group_vars主机组变量 》 group_vars下面默认all组

    ansible变量注册

             register关键词把当前任务的执行结果存储在变量中.结果参数可以用在模版中,动作条目,或者 when语句  

             rc 是执行shell命令返回的结果.0是执行成功,其他数字都表示执行失败

            ansible facts变量
               从客户端主机获取相关变量,用来采集被控端指标状态.比如IP地址 cpu信息 内存信息.
               Task Gathering Facts 就是在收集所有节点的facts变量 所以在执行这个任务的时候会有点耗时.
               默认情况下的facts变量名称都已经被定义好了,只需要采集被控端主机信息,然后把相关值传递给fact变量名称即可.

               根据被控端不同的硬件配置动态生成不同的应用配置文件 facts变量和template模块 在模板配置文件中使用 {{ var }}来动态修改应用的配置

            

           

  • 相关阅读:
    python之turtle画蚊香
    day08:多表查询
    day07:内置函数
    day06:基础查询
    day05:Navicat 图形化客户端的基本使用
    day04:MySQL数据库表的基本命令
    day03:MySQL数据库的使用
    day02:MySQL数据库的安装
    day01:数据库和SQL概述
    51单片机学习笔记(清翔版)(13)——LED点阵、74HC595
  • 原文地址:https://www.cnblogs.com/yxh168/p/14773253.html
Copyright © 2011-2022 走看看