Ansible6:Playbook简单使用
Ansible Playbook简介
ansbile-playbook是一系列ansible命令的集合,利用yaml 语言编写。playbook命令根据自上而下的顺序依次执行。同时,playbook开创了很多特性,它可以允许你传输某个命令的状态到后面的指令,如你可以从一台机器的文件中抓取内容并附为变量,然后在另一台机器中使用,这使得你可以实现一些复杂的部署机制,这是ansible命令无法实现的。
playbook通过ansible-playbook命令使用,它的参数和ansible命令类似,如参数-k(–ask-pass) 和 -K (–ask-sudo) 来询问ssh密码和sudo密码,-u指定用户,这些指令也可以通过规定的单元写在playbook 。
ansible-playbook的简单使用方法: ansible-playbook example-play.yml 。
Playbook基本语法
下面是一个简单的ansible-playbook示例,可以了解其构成:
# cat user.yml
- name: create user
hosts: all
remote_user: root
gather_facts: false
vars:
user:"test"
tasks:
- name: create user
user: name="{{ user }}"
配置项说明:
name:对该playbook实现的功能做一个概述,后面执行过程中,会打印 name变量的值hosts:指定对哪些被管理机进行操作;remote_user:指定在远程被管理机上执行操作时使用什么用户,如不指定,则使用ansible.cfg中配置的remote_usergather_facts:指定在执行任务之前,是否先执行setup模块获取主机相关信息,如未用到,可不指定vars:定义后续任务中会使用到的变量,如未用到,可不指定tasks:定义具体需要执行的任务- name:对任务的描述,在执行过程中会打印出来。
- user:指定调用user模块;
- name:user模块里的一个参数,用于指定创建的用户名称
同样,如果想实现把这个新增的用户删除,只需将该playbook文件的最后一行替换为如下行再执行相应的playbook即可:
user: name="{{ user }}" state=absent remove=yes
Playbook简单示例
下面通过playbook管理一个httpd服务器来简单了解下playbook的应用:
- 创建playbook
# cat manage_apache.yml
- name: play to setup web server
hosts: all
tasks:
- name: latest httpd version installed
yum:
name: httpd
state: latest
- name: correct index.html is present
copy:
src: files/index.html
dest: /var/www/html/index.html
- name: start httpd service
service:
name: httpd
state: started
enabled: true
- 执行playbook
# ansible-playbook manage_apache.yml
PLAY [play to setup web server] *********************************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************************
ok: [10.1.61.187]
TASK [latest httpd version installed] ***************************************************************************************************************************************
changed: [10.1.61.187]
TASK [correct index.html is present] ****************************************************************************************************************************************
changed: [10.1.61.187]
TASK [start httpd service] **************************************************************************************************************************************************
changed: [10.1.61.187]
PLAY RECAP ******************************************************************************************************************************************************************
10.1.61.187 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansible-playbook常用选项
1. 打印详细信息
- -v:打印任务运行结果
- -vv:打印任务运行结果以及任务的配置信息
- -vvv:包含了远程连接的一些信息
- -vvvv:Adds extra verbosity options to the connection plug-ins,including the users being used in the managed hosts to execute scripts, and what scripts have been executed
# ansible-playbook manage_apache.yml -vv
2. 校验playbook语法
# ansible-playbook --syntax-check manage_apache.yml
playbook: manage_apache.yml
3. 测试运行playbook
通过-C选项可以测试playbook的执行情况,但不会真的执行:
# ansible-playbook -C manage_apache.yml
PLAY [play to setup web server] *********************************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************************
ok: [10.1.61.187]
TASK [latest httpd version installed] ***************************************************************************************************************************************
ok: [10.1.61.187]
TASK [correct index.html is present] ****************************************************************************************************************************************
ok: [10.1.61.187]
TASK [start httpd service] **************************************************************************************************************************************************
ok: [10.1.61.187]
PLAY RECAP ******************************************************************************************************************************************************************
10.1.61.187 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Multiple Plays
# This is a simple playbook with two plays
- name: first play
hosts: web.example.com
tasks:
- name: first task
yum:
name: httpd
status: present
- name: second task
service:
name: httpd
state: started
- name: second play
hosts: db.example.com
tasks:
- name: first task
yum:
name: mariadb-server
status: present
- name: second task
service:
name: mariadb
state: started
Ansible6:Playbook简单使用的更多相关文章
- Ansible6:Playbook简单使用【转】
ansbile-playbook是一系列ansible命令的集合,利用yaml 语言编写.playbook命令根据自上而下的顺序依次执行.同时,playbook开创了很多特性,它可以允许你传输某个命令 ...
- ansible的playbook简单使用
一.介绍 playbook就是一个用yaml语法把多个模块堆起来的一个文件 核心组件: Hosts:执行的远程主机列表Tasks:任务,由模块定义的操作的列表:Varniables:内置变量或自定义变 ...
- ansible自动化运维详细教程及playbook详解
前言 当下有许多的运维自动化工具( 配置管理 ),例如:Ansible.SaltStack.Puppet.Fabric 等. Ansible 一种集成 IT 系统的配置管理.应用部署.执行特定任务的开 ...
- ansible playbook基本操作
一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...
- ansible的两种命令执行方式 : ad-hoc / playbook以及通过setup模块获取系统参数
一.什么是ad-hoc和playbook ad-hoc : 如果我们敲入一些命令去快速的完成一些操作,而不需要将这些执行过的命令刻意保存下来,这样的命令就叫做as-hoc命令,这里不做过多赘述. p ...
- ansible之感冒药
Ansible简介安装 Ansible是一个综合的强大的管理工具,他可以对多台主机安装操作系统,并为这些主机安装不同的应用程序,也可以通知指挥这些主机完成不同的任务.查看多台主机的各种信息的状态等,a ...
- Playbooks简介
Playbooks简介 关于Playbooks Playbook简单示例 基本组成 主机和用户 任务列表 Handlers: 配置更改时运行操作 执行Playbook Ansible-Pull Lin ...
- 一篇带你熟悉ansible-playbook剧本
#playbook介绍 #playbook简单介绍 playbook翻译过来就是剧本,以yml/yaml为后缀结尾的一个文本文件 #playbook组成:分为两部分play(定义主机的角色)和task ...
- 【原创】ansible-playbook 详解
YAML的语法和其他高阶语言类似并且可以简单表达清单.散列表.标量等数据结构.(列表用横杆表示,键值对用冒号分割,键值对里又可以嵌套另外的键值对) YAML文件扩展名通常为.yaml或者.yml.下面 ...
随机推荐
- ClickOnce 创建桌面快捷方式
static void Main() { bool bCreatedNew; Mutex m = new Mutex(false, "TestClickOnceClientName" ...
- sprint2(第四天)
由于最近网络不行,更新的代码push不上Github,组员之间又不能clone得到最新的项目,所以这几天都没有更新到Github 燃尽图
- 20145214《网络对抗》MAL_后门原理与实践
20145214<网络对抗>MAL_后门原理与实践 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 网页上查找资料时有时会不小心点到弹出来的广告,如果这个广告是个钓鱼 ...
- spring冲刺第二天
昨天查找了安卓开发的相关资料以及炸弹人游戏的资料. 由于今天课程比较多,只在晚上将安卓开发环境配置完成. 在安装软件时环境配置出现了问题,不过问过同学后成功解决.
- Oracle 11g R2 for Win7旗舰版(64位)- 安装
1.下载Oracle 11g R2 for Windows的版本 下载地址:http://www.oracle.com/techne ...
- mvc 路由配置-学习
MapRoute(RouteCollection, String, String) 映射指定的URL路由. 'Declaration <ExtensionAttribute> _ Publ ...
- eclipse+IDEA快捷键记录
Eclipse中自动获取 IDEA中:ctrl+alt+v==alt+shift+l 其它 (有些地方前面的C代表Ctrl .S代表Shift.A代表Alt) Ctrl+Shift+F ...
- QT源码解析(七)Qt创建窗体的过程,作者“ tingsking18 ”(真正的创建QPushButton是在show()方法中,show()方法又调用了setVisible方法)
前言:分析Qt的代码也有一段时间了,以前在进行QT源码解析的时候总是使用ue,一个函数名在QTDIR/src目录下反复的查找,然后分析函数之间的调用关系,效率实在是太低了,最近总结出一个更简便的方法, ...
- ACM数论之旅16---母函数(又名生成函数)(痛并快乐着(╭ ̄3 ̄)╭)
(前排出售零食瓜子) 前言: 母函数是个很难的东西,难在数学 而ACM中所用的母函数只是母函数的基础 应该说除了不好理解外,其他都是非常简单的 母函数即生成函数,是组合数学中尤其是计数方面的一个重要理 ...
- es6 很简单
es6出了许多好的,优秀的特性.下面列举一些常用的 其实这些特性都很好理解,一两句话就可以表达出来看.主要是对旧的写法的一种改进. function 加了一些语言糖,传参更方便 class ...