ansible-playbook相关
获取目标主机的信息
ansible all -m setup -a "filter=ansible_os_family"
获取ip地址
# {{ ansible_eth0.ipv4.address }}
如:
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname={{ ansible_eth0.ipv4.address }}"
定义变量
---
- hosts: all
vars:
username: chentiangang
passwd: {{ ansible_eth0.ipv4.address }}
使用ip地址最后一段做my.cnf的server-id
- name: change my.cnf server-id
shell: server_id=`echo {{ ansible_eth0.ipv4.address }} | awk -F "." '{print \$4}'` ; sed -i "s#server-id = 1#server-id = ${server_id}#g" /etc/my.cnf
不执行仅测试
ansible-playbook test.yml -C
安装一个zabbix-agent
---
- hosts: newserver
handlers:
- name: restart zabbix-agent
service: name=zabbix-agent state=restarted
tasks:
- name: install zabbix22-agent
yum: name={{ item }} state=latest
# -name: 删除zabbix-agent
# yum: name={{ item }} state=absent
with_items: zabbix22-agent
- name: template
template: src=/etc/ansible/roles/zabbix22-agent/templates/zabbix_agentd.conf dest=/etc/zabbix_agentd.conf owner=root group=root mode=0644
notify: restart zabbix-agent
when: ansible_os_family == "RedHat" and ansible_lsb.major_release == "7"
- name: start zabbix-agent
service: name=zabbix-agent state=started
检查语法
ansible-playbook main.yml --syntax-check
查看错误模块
ansible-playbook main.yml --verbose
要在运行之前查看哪些主机会受到影响,请执行以下操作:
ansible-playbook playbook.yml --list-hosts
正则
jinja中的正则
这边使用match和search关键字,匹配比较简单,用来when判断非常方便,直接贴一下官网代码和链接。
vars:
url: "http://example.com/users/foo/resources/bar"
tasks:
- debug: "msg='matched pattern 1'"
when: url | match("http://example.com/users/.*/resources/.*")
- debug: "msg='matched pattern 2'"
when: url | search("/users/.*/resources/.*")
- debug: "msg='matched pattern 3'"
when: url | search("/users/")
---
- hosts: tomcatservers
tasks:
- name: create dir
shell: hostname
when: ansible_hostname | search("inner-api")
指定远程连接端口
---
- hosts: ecAppB
port: 22
tasks:
- name: ping
ping:
首次连接不输yes的方法
打开/etc/ansible/ansible.cfg这一行的注释
默认情况下,首次登陆一台服务器,系统会提示是否要记住对端的指纹,用ansible也会这样,这样会导致需要手工输入yes或no,ansible 才可以往下执行。如需避免这种情况,需要在 /etc/ansible/ansible.cfg 文件中设置 host_key_checking = False
# uncomment this to disable SSH key host checking
host_key_checking = False
变量注册
---
- name: 注册变量
shell: hostname | sed -r 's#(.*)(-)([A-Z])([0-9])#\1#g'
register: pkgname
# 通过切片取到最终想要的结果
- debug: "msg='{{ pkgname.stdout_lines[0] }}.war'"
执行的时候不获取主机信息(Gathering Facts)
---
- hosts: java*
gather_facts: no
roles:
- log/log-privileges
替换
- name: PMM | Fix nginx config
replace:
dest: /etc/nginx/nginx.conf
regexp: '^(\s*)listen'
replace: '\1#listen'
ansible roles详解
https://www.cnblogs.com/zhaojiankai/p/7655855.html
ansible-playbook相关的更多相关文章
- Ansible playbook API 开发 调用测试
Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...
- ansible笔记(10):初识ansible playbook
ansible笔记():初识ansible playbook 假设,我们想要在test70主机上安装nginx并启动,我们可以在ansible主机中执行如下3条命令 ansible test70 -m ...
- ansible playbook基本操作
一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...
- ansible playbook模式及语法
一.什么是playbook及其组成 什么是playbook playbook 翻译过来就是"剧本" playbook的组成 play:定义的是主机的角色 task:定义的是具体执行 ...
- Ansible Playbook概览
Ansible playbook 执行需要三步路执行: 1.编写playbook 2.定义主机清单文件 3.设置运行环境,写入配置文件 1.编写playbook Playbook使用YAML语法格式进 ...
- 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 playbook 批量修改服务器密码 先普通后root用户
fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,r ...
- 写Ansible playbook添加zabbix被监控的对象
本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...
随机推荐
- LVS集群ipvsadm命令和调度算法(6)
一.ipvsadm命令参考 为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍一下: 术语解释: 1.virtual-service-address:是指虚拟服务器的ip地址2.r ...
- Django之cookie验证
先不用太多的蚊子描述什么是cookie,先做一个小实验: 此时我们在谷歌浏览器(一个客户端)和IE浏览器(另一个用户)测试: 刺客我们发现在两台浏览器都可以访问,而且不用进入login验证就可以登录, ...
- Java下使用Apache POI生成具有三级联动下拉列表的Excel文档
使用Apache POI生成具有三级联动下拉列表的Excel文档: 具体效果图与代码如下文. 先上效果图: 开始贴代码,代码中部分测试数据不影响功能. 第一部分(核心业务处理): 此部分包含几个方面: ...
- JVM GC知识回顾
这两天刚好有朋友问到我面试中GC相关问题应该怎么答,作为java面试中热门问题,其实没有什么标准回答.这篇文章结合自己之前的总结,对GC做一个回顾. 1.分代收集 当前主流VM垃圾收集都采用" ...
- POJ3258-River Hopscotch-二分
这个题就是排排坐,二分就可以了... River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 1325 ...
- HDU1016(素数环)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- msf
show exploit show payload msf使用数据库加快搜索,不然每次都等半天 service postgresql startmsfdb reinitmsf > db_rebu ...
- POJ 3829 Seat taking up is tough(——只是题目很长的模拟)
题目链接: http://poj.org/problem?id=3829 题意描述: 输入矩阵的大小n和m,以及来占位置的人数k 输入n*m的教室座位矩阵,每个值表示该座位的满意度 输入每个人来占位置 ...
- SQL语句整理1
THEN '月卡' THEN '周卡' THEN '季度卡' THEN '年卡' ELSE '未知卡类型' END AS '卡类型' FROM SL_Register_Info Left join用法 ...
- MLlib--FPGrowth算法
转载请标明出处http://www.cnblogs.com/haozhengfei/p/c9f211ee76528cffc4b6d741a55ac243.html FPGrowth算法_挖掘商品之间的 ...