首页 > 其他 > 详细

ansible剧本

时间:2019-02-20 22:03:24      阅读:164      评论:0      收藏:0      [点我收藏+]

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文件

 

ansible剧本

原文:https://www.cnblogs.com/baijinshuo/p/10409448.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!