ansible-playbook

简介:

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"





     本文转自阿伦艾弗森 51CTO博客,原文链接:http://blog.51cto.com/perper/1979384,如需转载请自行联系原作者



相关文章
|
SQL Oracle 关系型数据库
问题出在Debezium Oracle Connector的日志解析器上
问题出在Debezium Oracle Connector的日志解析器上
262 2
|
算法 JavaScript Java
使用强大的离线IP地址定位库ip2region获取城市信息
ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java、php、c、python、nodejs、golang、c#等查询绑定和Binary,B树,内存三种查询算法。
使用强大的离线IP地址定位库ip2region获取城市信息
|
监控 Java API
构建微服务架构的简易指南
【8月更文挑战第31天】在这篇文章中,我们将探索如何从零开始搭建一个微服务架构。通过简单易懂的语言和步骤,我们将一起学习设计、实现和部署微服务的最佳实践。无论你是后端开发的新手还是希望提升现有技能,本文都将为你提供有价值的指导。
|
存储 关系型数据库 分布式数据库
突破大表瓶颈|小鹏汽车使用PolarDB实现百亿级表高频更新和实时分析
PolarDB已经成为小鹏汽车应对TB级别大表标注、分析查询的"利器"。
突破大表瓶颈|小鹏汽车使用PolarDB实现百亿级表高频更新和实时分析
|
存储 安全 数据安全/隐私保护
表情包受保护无法发送怎么破解和制作gif表情包
表情包受保护无法发送怎么破解和制作gif表情包
606 0
|
安全 网络协议 网络安全
【答案】2023年国赛信息安全管理与评估理论技能答案三阶段
【答案】2023年国赛信息安全管理与评估理论技能答案三阶段
|
Shell 开发工具 git
git拉代码
git拉代码
238 0
|
分布式计算 Spark 容器
Spark Operator浅析
Spark Operator浅析 本文介绍Spark Operator的设计和实现相关的内容. Spark运行时架构 经过近几年的高速发展,分布式计算框架的架构逐渐趋同. 资源管理模块作为其中最通用的模块逐渐与框架解耦,独立成通用的组件.
|
关系型数据库 MySQL Linux
Mysql小版本升级
Mysql小版本升级
594 0