码迷,mamicode.com
首页 > 其他好文 > 详细

ansible-playbook

时间:2017-11-06 22:57:25      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:linux

yaml的基本元素

变量

Inventory

条件测试

迭代

playbook的组成结构;

Inventory

modules

Ad hoc Command

playbooks

tasks:任务

variables:变量

template:模板

handler:处理器

roles:角色

基本结构:

- hosts:webservers

 remote_user:

 tasks:

 - task1

module_name:module_args

 - task2

 

第一个playbook

- hosts: webservers

 remote_user: root

 tasks:

 - name: create test group

group: name=test system=yes gid=222

 - name: create test user

user: name=test uid=222 group=test system=yes


- hosts: dbservers

 remote_user: root

 tasks:

 - name: copy file to dbservers

copy: src=/etc/inittab dest=/tmp/inittab.ans

实例二:handlers的使用

- hosts: webservers

 remote_user: root

 vars:                  ##定义变量

 - package: httpd

 - service: httpd

 tasks:

 - name: install httpd package

yum: name={{ package }} state=latest    ##{{}}引用变量

 - name: install configuration file fro httpd

copy: src=/root/httpd.conf dest=/etc/httpd/conf/httpd.conf

notify:              ##定义配置文件修改后触发的handlers。

- restart httpd      ##定义handlers的名称

 - name: start httpd service

service: name={{ service }} state=started

 handlers:         ##定义handlers

 - name: restart httpd  ##定义handlers的名称要于上面notify中定义的保持一致

service: name={{  service }} state=restarted

条件测试:when:

- hosts: all

 remote_user: root

 vars:

 - username: user10

 tasks:

 - name: create {{ username }}  user

user: name={{ username}}

when: ansible_fqdn == "centos6.5"

迭代:

调用:item

定义循环列表:with_items

- name: add server users

 user: name={{ item.user }} state=present groups={{ item.groups }}

 with_items:

  -{ name: ‘testuser1‘,groups: ‘whell‘ }

  -{ name: ‘testuser2‘,groups: ‘root‘ }

tags:在playbook可以给某个任务定义一个标签,在执行playbook的时候可以使用--tags实现只运行某一个tasks。

ansbile-playbook test.yml --tags="service"


ansible-playbook

标签:linux

原文地址:http://perper.blog.51cto.com/6284626/1979384

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!