playbook

简介:

playbook是由一个或多个“play”组成的列表。play的主要功能是在于将事先归并为一组的主机装扮成事先用过ansible中的task定义好的角色。从根本上来讲,所谓task无非是调用ansible的一个module。将多个play组织在一个playbook中,即可以让他们联合起来按事先编排的机制完成某一任务。


target section可用配置项:

hosts:定义远程主机组

user:执行改任务组的用户

remote_user:与user相同

sudo:如果设置为yes,执行改任务组的用户在执行任务的时候,获取root权限

sudo_user:如果你设置user为tom,sudo为yes,sudo_user为jerry则tom用户则会获取jerry用户的权限

connection:通过什么方式连接到远程主机,默认为ssh

gather_facts:除非你明确说明不需要在远程主机上执行setup模块,否则默认会自动执行。如果你确实不需要setup模块所传递过来的变量,你可以启用该选项。

variable section(变量)

vars

vars_files

vars_prompt

task section

- name: install apache

action: yum name=httpd state=installed  #第一种方法

- name: configure apache

copy: src=files/httpd.conf dest=/etc/httpd/conf/httpd.conf    #第二种方法

- name: restart apache

service:

name: httpd

state: restarted      #第三种方法

########### target section ##############
---- hosts: webservers  
     remote_user: root
########### variable section ############ 
     vars:    
       http_port: 80    
       max_clients: 200
########### task section ################  
     tasks:  
     - name: ensure apache is at the latest version    
       yum: pkg=httpd state=latest  
     - name: write the apache config file    
       template: src=/srv/httpd.j2 dest=/etc/httpd.conf    
       notify:    
       - restart apache  
     - name: ensure apache is running    
       service: name=httpd state=started
###########################  
     handlers:    
       - name: restart apache      
         service: name=httpd state=restarted
时间: 2024-08-03 04:15:44

playbook的相关文章

ansible的playbook配置及template模板的使用

前言: 学习下ansible的playbooks的状态配置管理,说来puppet saltstack都有类似的叫法,只是ansible的叫法更犀利,我当时一看playbook还以为是花花公子的playboy.要使用ansible就要深入学习playbook配置及模板. 注:到底是playbook还是playbooks.... 先把官网的简单几个语法给说明下. #这个是你选择的主机 - hosts: webservers #这个是变量   vars:     http_port: 80     m

ansible playbook 详解

上篇文章介绍了 ansible 的安装配置及实例:http://msiyuetian.blog.51cto.com/8637744/1748143 下面这篇文章主要介绍 ansible 的 playbook 详解,playbook 就是相当于把模块或函数写入到配置文件里面,然后我们执行该配置文件来达到远程运维自动化的目的. 一.playbook的简单使用 1.创建文件实例 1)编辑配置文件 [[email protected] ~]# cd /etc/ansible/ [[email prote

Ansible 入门:安装 简例 playbook应用

Mysql 内:select unix_timestamp('2016-10-20')  <---> select from_unixtime(147662104) 转时间戳:date +%s   <--->  date -d @1476762104              ---- 小 Q -----------------------------------------------------------------------------------------------

Playbook初探索

之前说了几个ansible的语句,但是那些语句都是单独的命令,而且只能保存到history里,而使用了Playbook的话,那就等于是一套组合拳,而且这个组合拳是可以保存成一个文件,以后再有类似的任务,只要拿出来直接用,或者改改就能直接用了. 先说一下实验环境,一个控制端,下面三个操作端,整个/etc/ansible/hosts的情况如图: 下面就在/etc/ansible里写一个很简单的playbook,如图: 可以看到这个playbook的任务很简单就是把whoami这个命令重定向到~/nb

ansible的playbook组件

playbook的核心元素: tasks: 任务 variables: 变量 templates: 模板 handlers: 处理器 roles: 角色 组织格式:YAML(被称为另外一种标记语言) 语法:(列表用横杆表示,键值对用冒号分割,键值对里又可以嵌套另外的键值对) 例如: name:tom age:21 gender:Male spourse: name:lily gender:female children: —  name:susan age: 2 gender:female —

3.2 playbook tags

如果你有一个很大的playbook,而你只想run其中的某个task,这个时候tags是你的最佳选择. 如何使用呢? 一.最常见的使用形式: 抄取官方的实例: tasks: - yum: name={{ item }} state=installed with_items: - httpd - memcached tags: - packages - template: src=templates/src.j2 dest=/etc/foo.conf tags: - configuration 此

3.3 playbook roles

ansible role ansilbe自1.2版本引入的新特性,用于层次性.结构化地组织playbook; roles能够根据层次型结构自动装载变量文件.tasks以及handlers等.要使用roles只需要在playbook中使用include指令即可. 简单来讲,roles就是通过分别将变量.文件.任务.模块及处理器放置于单独的目录中,并可以便捷地include它们的一种机制.角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中. #创建role的步骤 (1) 创建以

3.4 实例 playbook安装mysql

1.创建mysql的playbook结构 1234567891011 [[email protected] roles]# pwd/etc/ansible/roles[[email protected] roles]# mkdir -p mysql_install/{files,handlers,meta,tasks,templates,vars}[[email protected] roles]# tree mysql_install/mysql_install/├── files├── ha

3.1 playbook语法实践

ansible playbook Playbook是使用yaml语言定制的,YAML是一个可读性高的用来表达资料序列的格式   Yml语法: 123456 - host: websrvs                   #定义执行的主机  remote_user: root            #定义执行的用户  tasks:                                #定义任务    - task1                             #定义第一个

运维自动化之ansible playbook一键化解决大量主机bash更新问题

今天发现有bash漏洞,但我这里近1000台服务器,为了方便.省时间,觉得使用ansible安装bash更新包,下面分享一下我的安装方法. 1.安装的playbook的内容 19:00:03 # cd /etc/ansible [email protected]:/etc/ansible 19:00:06 # cat update_bash.yml  --- - hosts: "{{ host }}"   remote_user: "{{ user }}"   ga