ansible playbook基本操作
一、ansible playbook简单使用
相当于是把模块写入到配置文件里面
vim /etc/ansible/test.yml //写入如下内容:
---
- hosts: 127.0.0.1
remote_user: root
tasks:
- name: test_playbook
shell: touch /tmp/test.txt
PS: 第一行是固定写法,hosts指定对哪些主机进行操作,如果是多台可以用逗号分隔,也可以使用主机组,如testhost
user参数指定使用什么用户登录远程机器
tasks指定一个任务,name为对任务的描述,执行过程中会打印出来,shell是ansible模块名字,执行test.yml
ansible-playbook test.yml
二、playbook设置变量
vim /etc/ansible/create_user.yml //创建一个用户:
---
- name: create_user
hosts: 127.0.0.1
user: root
gather_facts: false
vars:
- user: "test"
tasks:
- name: create user
user: name="{{ user }}"
PS: name参数对该playbook做一个描述,可以省略;gather_facts参数指定在以下任务部分执行前,是否执行setup模块获取主机相关信息;vars参数,指定变量,这里指定一个user变量,值为test,值一定要用引号引住;
tasks里面的user为一个模块,下面的name为user模块的一个参数,增加的用户名字调用了上面user变量的值。
三、playbook循环
vim /etc/ansible/while.yml //创建文件以及修改权限:
---
- hosts: 127.0.0.1
user: root
gather_facts: false
tasks:
- name: touch files and change mode for files
file: path=/tmp/{{ item }} state=touch mode=600
with_items:
- 1.txt
- 2.txt
- 3.txt
PS: with_items为循环的对象
四、playbook中的条件判断
vim /etc/ansible/when.yml //写入如下内容:
---
- hosts: testhost
user: root
gather_facts: True
tasks:
- name: user when
shell: touch /tmp/when.txt
when: ansible_eno16777736.ipv4.address=="192.168.1.99"
PS: 只有满足when里面的条件时,才会去执行shell里面的内容;ansible 127.0.0.1 -m setup可以查看所有facter信息,即when里面条件在这里面去设置。
五、playbook中的handlers(tasks满足条件之后才执行)
vim /etc/ansible/handlers //写入如下内容:
---
- name: handlers test
hosts: 127.0.0.1
user: root
tasks:
- name: copy file
copy: src=/etc/passwd dest=/tmp/aaa.txt
notify: test handlers
handlers:
- name: test handlers
shell: echo "" >> /tmp/aaa.txt
PS:只有当copy模块真正执行后,才会去调用下面handlers相关操作,copy与notify的顺序没有关系;如果aaa.txt与passwd内容是一样的,就不会去执行handlers里面的shell命令。适用于配置文件发生更改后重启服务的操作。
ansible playbook基本操作的更多相关文章
- Ansible playbook API 开发 调用测试
Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...
- ansible playbook实践(四)-如何调试写好的playbook文件
有时,我们写了一个长长,功能很强悍的yaml文件,但是,我们有可能会担心,写的yaml文件是否正确,是否有漏洞危机,毕竟是要修改线上的机器,那么,有可能我们可以从以下几个检查维度来进行,确保在大规模应 ...
- ansible playbook批量改ssh配置文件,远程用户Permission denied
最近手里的数百台服务器需要改/etc/ssh/sshd_config的参数,禁止root直接登陆,也就是说 [root@t0 ~]# cat /etc/ssh/sshd_config | grep R ...
- ansible笔记(11):初识ansible playbook(二)
ansible笔记():初识ansible playbook(二) 有前文作为基础,如下示例是非常容易理解的: --- - hosts: test211 remote_user: root tasks ...
- ansible笔记(10):初识ansible playbook
ansible笔记():初识ansible playbook 假设,我们想要在test70主机上安装nginx并启动,我们可以在ansible主机中执行如下3条命令 ansible test70 -m ...
- Ansible playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- 写Ansible playbook添加zabbix被监控的对象
本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...
- Ansible playbook基础组件介绍
本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...
- ansible入门四(Ansible playbook基础组件介绍)
本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...
随机推荐
- iOS开发之--FMDB的使用
在很多时候,我们会用到数据库,我们移动端使用的数据库,一般都是嵌入型数据库,是一种较轻型的数据库, 一般很多时候,大牛封装的FMDB的第三方,已经足够满足我们的需求了! 现在分享一下自己的学习心得,希 ...
- axios如何进行跨域以及对返回格式为回调函数字符串的处理
自从vue2.0开始不对vue-resouce进行维护了,转而用axios进行代替,axios的官方文档写的很详细,附上链接一枚:http://www.jianshu.com/p/df464b26ae ...
- <span>和<div>标签的隐藏和显示切换
<div class="axb"> <span id="tipStep1" class="fl" >第一步显示< ...
- [Gradle] 给已存在的 task 添加依赖
需求:在编译宿主 APP 之前先编译两个插件 SamplePlugin1 和 SamplePlugin2 tasks.whenTaskAdded { task -> if (task.name ...
- 170413、怎么精确理解leader布置的任务(技术外的话)
[缘起] 和一个同学交代了一个很重要的事情,结果执行的结果并不是自己想要的,微微生气之余,简单的聊聊“如何精确的理解leader布置的任务”. [员工角度的潜在困惑] 1)leader讲了很多,脑子记 ...
- Groovy中的脚本与类
包名 当你在groovy中定义类的时候需要指定包名,这和java中类似不多介绍. 导入 groovy中的导入也跟java类似,有一下五种: 默认导入 groovy默认导入了一下几个包和类: impor ...
- Python--paramiko库:连接远程服务器操作文件
import paramikofrom loggingutils.mylogger import logger as log class SSHConnection(object): def __in ...
- Codeforces Round #513-ABCD
ABC现场做出,涨了八十几分吧.D有点思路不知道怎么实现,赛后看题解发现巨简单,想得太复杂了.蓝瘦. A----http://codeforces.com/contest/1060/problem/A ...
- 解决:R读取含中文excel文件,read.xlsx乱码问题
1.新建testexcel.xlsx文件 2.创建R文件:test.R # 定义文件变量 excel_path <- "chapter2/testexcel.xlsx" # ...
- Go语言 map的实现
Go中的map在底层是用哈希表实现的,你可以在 $GOROOT/src/pkg/runtime/hashmap.goc 找到它的实现. 数据结构 哈希表的数据结构中一些关键的域如下所示: struct ...