ansible常用方法
1.安装ansible
yum -y install ansible
2.主机清单推荐格式
[root@controller ~]# vi /etc/ansible/hosts
[controllers]
# ansible_ssh_port=22
controller ansible_ssh_host=192.168.100.10
[computes]
compute ansible_ssh_host=192.168.100.20
3.常用命令
# 1、ping全部主机
ansible all -m ping
# 2、查看compute主机的全部信息
ansible compute -m setup
# 有过滤的作用
ansible compute -m setup -a "fileter='ansible_fqdn'"
# 模糊匹配
ansible compute -m setup -a 'filter=*eth0*'
# 3、playbook获取指定变量的方法
[root@controller ~/ansible]# vim get_info.xml
- hosts: compute
tasks:
- name: create file named ip address
shell: "echo {{ ansible_eth0['ipv4']['address'] }} > ~/a.txt"
执行之后
[root@compute ~]# cat a.txt
192.168.100.20
4.Playbook的解耦和
1、初始化新的Playbook
# 初始化一个名为install_zabbix剧本
[root@controller ~]# ansible-galaxy init install_zabbix
- Role install_zabbix was created successfully
# 各个目录的解释
[root@controller ~]# tree install_zabbix/
install_zabbix/
├── defaults # 低优先级变量
│ └── main.yml
├── files # 存放文件,没有变量的配置文件,使用copy推送的时候使用,shell、txt
├── handlers # 触发器文件
│ └── main.yml
├── meta # 依赖关系文件
│ └── main.yml
├── README.md
├── tasks # 工作任务文件
│ └── main.yml
├── templates # jinja2模板文件,里面有变量,使用temlate推送的文件都可以放到里面。
├── tests # 测试文件 -C 的时候
│ ├── inventory
│ └── test.yml
└── vars # 变量文件,优先级比较高的
└── main.yml
8 directories, 8 files
# 保证site.yml和要执行的任务在同一个目录就好了。这里移动了一下。
[root@controller ~/ansible_playbook]# cat site.yml
# 模板
#- hosts: all <====要运行的主机
# roles:
# 示要执行install_zabbix的这个任务,在m01这个机器上面
# - { role: install_zabbix , when: ansible_fqdn == "m01" }
- hosts: all
roles:
- { role: install_zabbix }
[root@controller ~/ansible_playbook]# ls
install_zabbix site.yml
[root@controller ~/ansible_playbook]# cat install_zabbix/tasks/main.yml
- name: Send config file zabbix Agent
template:
src: zabbix_agentd.conf
dest: /etc/zabbix/
# 模版文件夹里面的模板文件
[root@controller ~/ansible_playbook]# cat install_zabbix/templates/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={{ ansible_eth0['ipv4']['address'] }}
ServerActive={{ ansible_eth0['ipv4']['address'] }}
Hostname={{ ansible_fqdn }}
Include=/etc/zabbix/zabbix_agentd.d/*.conf
# 执行这个文件
[root@controller ~/ansible_playbook]# ansible-playbook site.yml
# 显示的结果
[root@compute ~]# cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.100.20
ServerActive=192.168.100.20
Hostname=compute
Include=/etc/zabbix/zabbix_agentd.d/*.conf
ansible常用方法的更多相关文章
- ansible 常用方法
测试:用shell执行一个脚本很麻烦的,用script执行 1)推送脚本过去,并授权 ansible george -m copy -a "src=/tmp/test.sh dest=/tm ...
- Gitlab_ansible_jenkins三剑客③Ansible的安装及使用
一台服务器可能会安装不同的python应用,不同的应用可能使用的模块版本不同,如果都安装在同样的环境下容易冲突,为了避免冲突,引入virtualenv 这个包管理工具进行环境的隔离 使用pip安装之前 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken
项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(7)
项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)–技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静 ...
- 如何利用ansible callback插件对执行结果进行解析
最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...
- 《Ansible权威指南》笔记(2)——Inventory配置
四.Inventory配置ansible通过Inventory来定义主机和组,使用时通过-i指定读取,默认/etc/ansible/hosts.可以存在多个Inventory,支持动态生成.1.定义主 ...
- useful Ansible commands
This article includes some useful Ansible commands. I will try to write blogs by English. You may wa ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- Jquery元素选取、常用方法
一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...
随机推荐
- LibTorch实战六:C++版本YOLOV5.4的部署
一.环境配置 win10 vs2017 libtorch-win-shared-with-deps-debug-1.8.1+cpu opencv349 由于yolov5代码,作者还在更新(写这篇博客的 ...
- Java中对象的生与灭- 核心篇
前言 大家好啊,我是汤圆,今天给大家带来的是<Java中对象的生与灭- 核心篇>,希望对大家有帮助,谢谢 文章纯属原创,个人总结难免有差错,如果有,麻烦在评论区回复或后台私信,谢啦 简介 ...
- MySQL常用配置参数说明
1.sync_binlog sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来 ...
- 【Java】 6.0 输入,输出和异常处理
[概述] 就目前而言,我们遇到的"输出"无非就是这个比: System.out.println() 更详细的输入输出会在IO中提到,那么这个笔记就是记录几种常用输入机制 [Scan ...
- resultMap结果集映射解决属性名和字段不一致问题
解决属性名和字段名不一致的问题 1.出现的问题 数据库中的字段 新建一个项目,拷贝之前的,测试实体类与数据库字段不一致的情况 public class User { private int id; ...
- Docker工具的使用
初识 Docker jdk的版本问题,环境造成的问题很常见,称为代码的水土不服 把环境和代码一起传过去 软件跨环境迁移的问题就解决了 Docker 是一个开源的应用容器引擎 诞生于 2013 年初,基 ...
- 001 - 使用鸿蒙WebView创建简单浏览器 step 1
打开官网,找到WebView的文档(模拟器不支持) 鸿蒙webview的开发指南(原始链接,方便大家识别并点击):https://developer.harmonyos.com/cn/docs/doc ...
- 005-Java中的控制语句
目录 一.控制语句 一.作用 二.分类 二.选择语句(分支语句) 一.if 语句 二.switch语句 三.循环语句 一.for循环 二.while循环(while循环的循环次数是:0~n次) 三.d ...
- 【pytest官方文档】解读fixtures - 11. fixture的执行顺序,3要素详解(长文预警)
当pytest要执行一个测试函数,这个测试函数还请求了fixture函数,那么这时候pytest就要先确定fixture的执行顺序了. 影响因素有三: scope,就是fixture函数的作用范围,比 ...
- 软件篇-01-为Jetson TX2扫清科研的障碍
建议用vryL,GUI界面,功能更全,支持订阅. https://github.com/ShieldQiQi/vryLgithub.com 下面的内容不用看了,除非你更喜欢命令行界面. To r ...