获取目标主机的信息

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相关的更多相关文章

  1. Ansible playbook API 开发 调用测试

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

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

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

  3. ansible playbook基本操作

    一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...

  4. ansible playbook模式及语法

    一.什么是playbook及其组成 什么是playbook playbook 翻译过来就是"剧本" playbook的组成 play:定义的是主机的角色 task:定义的是具体执行 ...

  5. Ansible Playbook概览

    Ansible playbook 执行需要三步路执行: 1.编写playbook 2.定义主机清单文件 3.设置运行环境,写入配置文件 1.编写playbook Playbook使用YAML语法格式进 ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. [PHP] 编译构建最新版PHP源码

    获取最新PHP代码git clone https://git.php.net/repository/php-src.git构建编译环境apt-get install build-essential 编 ...

  2. React Native 网络层分析

    文:志俊(沪江Web前端) 本文原创,转载请注明作者及出处 在使用React Native开发中,我们熟练的采用JavaScript的方式发送请求的方式发送一个请求到服务端,但是处理这个请求的过程其实 ...

  3. Jfinal启动源码解读

    本文对Jfinal的启动源码做解释说明. PS:Jfinal启动容器可基于Tomcat/Jetty等web容器启动,本文基于Jetty的启动方式做启动源码的解读和分析,tomcat类似. 入口  JF ...

  4. cs231n spring 2017 lecture4 Introduction to Neural Networks 听课笔记

    1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/ ...

  5. 学习笔记-nodejs报错

    端口被占用 解决办法:打开控制管理器关掉node.exe进程 如果找不到可以使用命令行:netstat -ano | findstr 8000 找到进程的pid,然后到控制管理器找到进程杀掉. net ...

  6. HDU2988-Dark roads,HDU1233-还是畅通工程-最小生成树

    最小生成树: 中文名 最小生成树 外文名 Minimum Spanning Tree,MST 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的 ...

  7. 模板类-bitset

    stl提供了std::bitset模板类,定义:bitset <32> bitvec;尖括号中的为长度,这条语句把bitvec定义为含有32个的bitset对象.和容器一样,按位置来访问他 ...

  8. 使用 SVG 和 JS 创建一个由星形变心形的动画

    序言:首先,这是一篇学习 SVG 及 JS 动画不可多得的优秀文章.我非常喜欢 Ana Tudor 写的教程.在她的教程中有大量使用 SVG 制作的图解以及实时交互 DEMO,可以说教程的所有细枝末节 ...

  9. Oracle_字段数据类型

    Oracle_字段数据类型 数据库表字段的数据类型 字符数据类型 CHAR:存储固定长度的字符串 VARCHAR2 :存储可变长度的字符串 数值数据类型 NUMBER:存储整数和浮点数,格式为NUMB ...

  10. 算法-java代码实现选择排序

    选择排序