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常用方法的更多相关文章

  1. ansible 常用方法

    测试:用shell执行一个脚本很麻烦的,用script执行 1)推送脚本过去,并授权 ansible george -m copy -a "src=/tmp/test.sh dest=/tm ...

  2. Gitlab_ansible_jenkins三剑客③Ansible的安装及使用

    一台服务器可能会安装不同的python应用,不同的应用可能使用的模块版本不同,如果都安装在同样的环境下容易冲突,为了避免冲突,引入virtualenv 这个包管理工具进行环境的隔离 使用pip安装之前 ...

  3. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

    项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...

  4. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(7)

    项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)–技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静 ...

  5. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  6. 《Ansible权威指南》笔记(2)——Inventory配置

    四.Inventory配置ansible通过Inventory来定义主机和组,使用时通过-i指定读取,默认/etc/ansible/hosts.可以存在多个Inventory,支持动态生成.1.定义主 ...

  7. useful Ansible commands

    This article includes some useful Ansible commands. I will try to write blogs by English. You may wa ...

  8. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  9. Jquery元素选取、常用方法

    一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...

随机推荐

  1. 理解的shell父子关系

    今天我们谈谈linux系统的shell的父子关系,因为大家对手机都比较熟悉,手机本身也是一个linux主机,所以我们今天就拿手机来举个例子. 首先就是创建一个新的shell,你可以把它理解成一个手机打 ...

  2. Ubuntu安装docker/docker-compose(在全新系统状态下的安装)

    设置仓库 更新 apt 包索引. $ sudo apt-get update 安装 apt 依赖包,用于通过HTTPS来获取仓库: $ sudo apt-get install \ apt-trans ...

  3. django-数据库的增删改查操作

    django-数据库的增删改查操作 1.添加用户记录 def login(request): 增加用户记录 使用save()方法来增加记录 username = UserInfo(username=' ...

  4. Java(246-264)【List、Set】

    1.数据结构_栈 Stack先进后出 2.数据结构_队列 Queue先进先出 3.数据结构_数组 Array查询快.增删慢 需要创建一个新数组,将指定新元素存储在指定索引位置,再把原数组元素根 据索引 ...

  5. OkHttp配置HTTPS访问+服务器部署

    1 概述 OkHttp配置HTTPS访问,核心为以下三个部分: sslSocketFactory() HostnameVerifier X509TrustManager 第一个是ssl套接字工厂,第二 ...

  6. Fiddler 菜单功能 Host配置 请求伪造 接口调试

    菜单功能: Fiddler工具栏上每个按钮的功能只要鼠标停留在按钮上面就会出现英文描述的功能. 小气泡:增加备注,点击气泡即可对下面捕捉到的会话增加备注(很少使用) Replay回放按钮:较常用,捕捉 ...

  7. Day17_100_IO_FileWriter文件字符输入流

    FileWriter文件字符输入流 继承结构 Java.lang.Object - java.io.Writer; 抽象类 java.io.OutputStreamWriter; <转换流: 将 ...

  8. Json文件转换为Excel文件!涉及读文件,时间戳转化,写文档

    一. 思路 今天接到个小任务,让把json文件转换成excel文件,按照列展开. 思路:既然json已经都已经是现成的,那直接将json文件做读操作,在通过不同的key,找到对应的信息,在存到单元格中 ...

  9. 网关Ocelot功能演示完结,久等了~~~

    前言 关于网关(Ocelot)的分享,还遗留一些功能没演示呢,接着来聊聊:这次重点针对网关Ocelot使用缓存.集成Polly做服务治理.集成IdentityServer4做认证授权来详细说说:如果对 ...

  10. 2- MySQL客户端工具Workbench的使用及数据库的操作

    数据库增删改查快速入门 查看数据库: show databases; 选在数据库:use 数据库名: 创建数据库:create  database db_name; 删除数据库:drop databa ...