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 ...
 
随机推荐
- 码农深耕 - 说说IDisposable
			
概要 C#提供了方便的垃圾回收机制,使我们几乎不再需要为资源管理费心.可事实上,能被垃圾回收释放掉的只是托管资源,非托管资源还是需要我们手动释放.而为了实现这一目的,C#提供了 IDisposable ...
 - Integer.parseInt()和Integer.valueOf()方法详解
			
1.Integer.parseInt(): public static int parseInt(String s) throws NumberFormatException { return par ...
 - JS-表单提交检查表单字数方法
			
解决方法: //作用于整个html中 function check(form) { //topic是input的id,descrip是textarea的id var topic = $("# ...
 - 【BZOJ4443】[Scoi2015]小凸玩矩阵 二分+二分图最大匹配
			
[BZOJ4443][Scoi2015]小凸玩矩阵 Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或 ...
 - 170331、58到家MQ如何快速实现流量削峰填谷
			
问:为什么会有本文? 答:上一篇文章<到底什么时候该使用MQ?>引起了广泛的讨论,有朋友回复说,MQ的还有一个典型应用场景是缓冲流量,削峰填谷,本文将简单介绍下,MQ要实现什么细节,才能缓 ...
 - ORACLE内存结构:PGA And UGA,ORACLE用户进程、服务器进程
			
执行一个SQL语句 执行查询语句的过程: 用户进程执行一个查询语句如select * from emp where empno=7839 用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的 ...
 - Caused by: java.sql.SQLException: Failed to start database 'metastore_db' with class loader org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1@d7c365, see the next exception for details.
			
解决方法:https://stackoverflow.com/questions/37442910/spark-shell-startup-errors 异常: 18/01/29 19:04:27 W ...
 - nodejs(三)上之express
			
express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速 ...
 - LMAX Disruptor 原理
			
http://mechanitis.blogspot.com/search/label/disruptor http://ifeve.com/disruptor/, 并发框架Disruptor译文 h ...
 - Python3量化技术常用插件
			
1. 确定自己的系统为64位版本 2. 下载安装Python3 64位版本 如果要使用zipline,建议使用python3.5.另外发现很多东西要求的也是3.5. 主页地址: https://www ...