zoukankan      html  css  js  c++  java
  • ansible剧本

    yaml简介

    YAML是"YAML Ain't a Markup Language"(YAML不是一种置标语言)的递归缩写,早先YAML的意思其实是:"Yet Another Markup Language"(另外一种置标语言),但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名,YAML的官方定义很简单,即一种人性化的数据格式定义语言,其主要功能用途类似于XML或JSON,YAML使用空白字符和分行来分隔数据,且巧妙避开各种封闭符号,如:引号、括号等,以避免这些符号在复杂层次结构中变得难以辨认。YAML的语法与高阶语言类似,可以很简单地表述序列(java中的list)、杂凑表(java中的map)、标量(java中的基本类型等)数据结构,它重点强调可阅读性。

    字典: key: value
    
    列表: [] -
    
    后缀名 yaml yml

    ansible-playbook命令格式

    执行顺序: 从上往下

    特性:幂等性 不管执行多少遍,结果都是一样的

    ansible-playbook [options] playbook.yml [playbook2 ...] 
    -C, --check   # 检查,白跑,干跑
    -f FORKS, --forks=FORKS #用来做并发
    --list-hosts # 列出主机列表
    --syntax-check # 语法检查 

    简单用法

    - hosts: web
      tasks:
      - name: creategroup
        group: name=alex10
      - name: cretaeuser
        user: name=wusir10
    hosts: gb
    tasks:
    - name: 第san个姑娘
      dong: 第san个姑娘
      

    传参

    - hosts: web
      tasks:
      - name: create{{ user }}
        user: name={{ user}}

     第一种方式

    ansible-playbook -e 'user=alexsb10' p2.yml

     第二种方式

    [db]
    192.168.107.132 user=alexsb11
    192.168.107.133 user=alexsb12

     第三种方式

    [db:vars] #表示组的参数
    user=alexsb13

     第四种方式

    - hosts: db
      vars:
      - user: alexsb14
      tasks:
      - name: create{{ user }}
        user: name={{ user}}

     第五种传参方式

    - hosts: db
      tasks:
      - name: sum
        shell: echo 7+8|bc
        register: user
      - name: createuser
        user: name={{user.stdout}}

     传参方式的优先级

    -e > playbook vars > hosts文件
  • 相关阅读:
    eclipse安装插件最简单的方法!!
    mysql数据库导入sql文件的方法。
    拿起丢掉的东西,才叫做坚持。
    个人总结作业
    黄金点游戏程序注解
    结对项目的完成与体会
    第三周任务学习记录
    vs2013的安装与使用 测试
    习题作业
    对于四则运算编程自己的过程问题
  • 原文地址:https://www.cnblogs.com/baijinshuo/p/10409448.html
Copyright © 2011-2022 走看看