一、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基本操作的更多相关文章

  1. Ansible playbook API 开发 调用测试

    Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...

  2. ansible playbook实践(四)-如何调试写好的playbook文件

    有时,我们写了一个长长,功能很强悍的yaml文件,但是,我们有可能会担心,写的yaml文件是否正确,是否有漏洞危机,毕竟是要修改线上的机器,那么,有可能我们可以从以下几个检查维度来进行,确保在大规模应 ...

  3. ansible playbook批量改ssh配置文件,远程用户Permission denied

    最近手里的数百台服务器需要改/etc/ssh/sshd_config的参数,禁止root直接登陆,也就是说 [root@t0 ~]# cat /etc/ssh/sshd_config | grep R ...

  4. ansible笔记(11):初识ansible playbook(二)

    ansible笔记():初识ansible playbook(二) 有前文作为基础,如下示例是非常容易理解的: --- - hosts: test211 remote_user: root tasks ...

  5. ansible笔记(10):初识ansible playbook

    ansible笔记():初识ansible playbook 假设,我们想要在test70主机上安装nginx并启动,我们可以在ansible主机中执行如下3条命令 ansible test70 -m ...

  6. Ansible playbook 批量修改服务器密码 先普通后root用户

    fsckzy   Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...

  7. 写Ansible playbook添加zabbix被监控的对象

    本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...

  8. Ansible playbook基础组件介绍

    本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...

  9. ansible入门四(Ansible playbook基础组件介绍)

    本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...

随机推荐

  1. MySQL5.6绿色版安装(mysql-5.6.24-winx64.zip)

    1.数据库安装 Mysql官方网站:http://www.mysql.com/,数据库下载地址:http://www.mysql.com/downloads/.从官方网站可以找到两种文件包,一种是ex ...

  2. docker registry的https错误解决

    从docker1.3.2版本开始默认docker registry使用的是https,当你用docker pull 非https的docker regsitry的时候会报下面错误: Error: In ...

  3. 1808:公共子序列 即POJ 1458 Common Subsequence

    1808:公共子序列 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 我们称序列Z = < z1, z2, ..., zk >是序列X = < ...

  4. Linux下查看nginx的安装路径

    输入:nginx -V 输出:configure arguments: --prefix=/usr/local/nginx

  5. angular2+ 自定义pipe管道实例--定义全局管道及使用

    首先到项目目录下ng g pipe pipe/myslice 就会在app目录下生成一个pipe文件夹文件夹下有myslice.pipe.ts文件,如果没有也可以自己手动新建 然后需要再app.mod ...

  6. CSS文本对齐text-align详解

    1.语法 text-align具体参数如下: 语法:text-align : left | right | center | justify 说明:设定元素内文本的水平对齐方式. 参数:left :  ...

  7. quartz启动Quartz : org.quartz.SchedulerConfigException: Thread count must be > 0

    检查quartz.properties数据源配置是否正常

  8. 【Python算法】图与树的实现

    邻接列表及其类似结构 对于图结构的实现来说,最直观的方式之一就是使用邻接列表.下面我们来实现一个最简单的:假设现在我们有n个节点,编号分别为0,...,n-1. 然后,每个邻接列表就是一个数字列表,我 ...

  9. winform实现QQ聊天气泡200行代码

    c# winform实现QQ聊天气泡界面,原理非常简单,通过webKitBrowser(第三方浏览器控件,因为自带的兼容性差)加载html代码实现,聊天界面是一个纯HTML的代码,与QQ的聊天界面可以 ...

  10. MICRO-SERVICE

    这个缩放立方体 (scale cube) 演示了各种可用的缩放选项: 缩放立方体 X 轴缩放 分担了应用程序的多个副本之间的工作负载,通常会使用一个负载平衡器或一个集群管理器. Y 轴缩放 将应用程序 ...