最近看ansible自动化运维工具,前段时间刚好有需求。最近发布系统上线,需要安装agent,400多台服务器手动安装当然费事,《ansible自动化运维》华章出的也看了80多页了,就试着写了一个agent推送和zabbix-agent推送,主要是发布系统agent推送,之前的zabbix-agent推送已经写成shell脚本推送,这边就不显摆了。公司也是刚用ansible,线上都是脚本自动化。

以下比较简单:

ansible play-book的树行结构如下:

主要是推发布系统的agent:

$ tree
.
├── agent.yaml
├── ansible.cfg
├── desheng.list
├── file.list
├── file.sh
├── hosts
├── hosts_agent
├── hosts_new
├── logstash.retry
├── logstash.yaml
└── roles├── agent│   ├── files│   │   └── agent.tgz│   ├── handlers│   ├── stop.sh│   ├── tasks│   │   └── main.yaml│   ├── templates│   └── vars│       └── main.yaml├── logstash│   ├── files│   │   └── logstash-2.4.1.tar.gz│   ├── handlers│   ├── tasks│   │   └── main.yaml│   ├── templates│   │   ├── logstash.j2│   │   └── logstash.j2.bak│   └── vars└── zabbix_agent├── files│   └── zabbix.tar.gz├── handlers│   └── main.yml├── tasks│   └── main.yaml├── templates│   └── zabbix_agentd.conf.j2└── vars└── main.yaml

agent play-book的树形结构如下:

$ tree agent
agent
├── files
│   └── agent.tgz
├── handlers
├── stop.sh
├── tasks
│   └── main.yaml
├── templates
└── vars└── main.yaml

$ cat main.yaml  #ansible-playbook tasks的内容

- name: pkill agent processscript: /etc/ansible/roles/agent/stop.sh
- name: remove linkfile: path={{ agent_home }}/{{ bag }}  state=absent
- name: scp agentcopy: src=agent.tgz dest={{ agent_home }}
- name: tar zxf agent.tgzshell: chdir={{ agent_home }} tar -zxf agent.tgz
- name: linkfile: src={{ agent_home }}/{{ bag }}-{{ version }} dest={{ agent_home }}/{{ bag }} state=link
- name: running agentshell: cd {{ agent_home }}/{{ bag }} && nohup python swift_agent.py > agent.log  2>&1 &
- name: remove agent.tgzfile: path={{ agent_home }}/agent.tgz state=absent

#vars 主要是定义几个变量。

$ cat main.yaml
agent_home: /data
user: ody
version: v3.0
bag: agent

#ansible的当下目录放一个stop脚本,主要是发布新的agent是杀掉在运行的agent进程。

$ cat stop.sh
#!/bin/bash
ps -ef | grep python | grep -v "grep" | awk '{print $2}' | xargs kill -9

ansible-playbook agent实例相关推荐

  1. Ansible 学习总结(2)—— Ansible playbook 入门详解

    一.Ansible playbook 简单概述 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本.通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远 ...

  2. ansible playbook play task执行顺序

    当我们使用ansible-playbook执行playbook,我们可以指定一个或者多个playbook,而一个playbook中可以有多个play,这些play下面又会存在一个或者多个task,这些 ...

  3. Ansible PlayBook语法

    PlayBook语法实例 playbook是由一个或多个play组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过Ansible中的tasks定义好的角色(play的内容被称为ta ...

  4. Ansible剧本管理(实例演释!!!)

    inventory主机清单 ansible默认的主机清单是/etc/ansible/hosts文件,主机清单可以手动设置,也可以通过Dynamic Inventory动态生成,一般主机名使用FQDN ...

  5. 自动化运维工具-----Ansible playbook详解

    目录 一.Ansible playbook简介 二.Ansible playbook使用场景 三.Ansible playbook格式 格式简介 核心元素 基本组件 variables变量 模板tem ...

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

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

  7. Python+Django+Ansible Playbook自动化运维项目实战(二)

    Python+Django+Ansible Playbook自动化运维项目实战 一.资产管理,自动化发现.扫描 1.服务端资产探测.扫描发现 1)资产管理的资产: 2)抽象与约定: 2.探测协议和模块 ...

  8. Python+Django+Ansible Playbook自动化运维项目实战:资产管理

    Python+Django+Ansible Playbook自动化运维项目实战 一.资产管理,自动化发现.扫描 1.服务端资产探测.扫描发现 1)资产管理的资产: 2)抽象与约定: 2.探测协议和模块 ...

  9. Ansible playbook

    1.什么是playbook playbook :定义一个文本文件,以yml为后缀结尾,那playbook组成如下. play:定义的是主机的角色 task: 定义的是具体执行的任务 总结:playbo ...

最新文章

  1. java转账_使用Java模拟银行账户存、取款、转账功能
  2. java中类的加载及执行顺序
  3. OpenCV学习:播放avi视频文件
  4. python循环for不从零开始_Python-多处理-巨大的for循环
  5. c语言多个子函数声明,C函数在多个源文件中的声明和定义
  6. PAT乙级(1001 害死⼈不偿命的(3n+1)猜想)
  7. 147. Insertion Sort List
  8. 聚合数据接口,提供开放API
  9. html5 怎么入门,初学HTML5 从入门到精通你需要懂得这些
  10. 计算IO设备、CPU利用率
  11. win10系统 专业版 安装教程
  12. bzoj 4034: [HAOI2015]T2
  13. 百度统计的使用技巧_SEO建议
  14. 小白学习java第11天多态抽象类接口
  15. NO.3 创建一个图片,并在图片上画线插入文字等
  16. 计算IP地址所在网段
  17. 【pg Postgres】 Postgres解决Permission denied for relation
  18. 阿里工程师谈,什么是好的代码?
  19. QQ号码丢了不用着急 一步一步找回来
  20. 云计算“战场”硝烟弥漫,巨头争相降价抢市场

热门文章

  1. sqlserver触发器如何将一个库中的数据插入到另外一个库中
  2. [NHibernate]一对多关系(级联删除,级联添加)
  3. 好奇:WayOs破解、OEM、修复、打包等工具大全,满足大家的好奇心发下截图
  4. 怎么根据输入的n来输入n组数组_【题解一维数组】1106:年龄与疾病
  5. 24个整点报时_大连交通广播整点报时广告怎么做?大连交通广播全新广告价格...
  6. DFA和NFA的区别
  7. dbForge Schema Compare for MySQL入门教程:预览架构同步脚本和同步架构
  8. 做图表统计你需要掌握SQL Server 行转列和列转行
  9. ISA2006发布Exchange服务器 RPC OVER HTTPS
  10. linux的functions之killproc函数详解