ansible-playbook agent实例
最近看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实例相关推荐
- Ansible 学习总结(2)—— Ansible playbook 入门详解
一.Ansible playbook 简单概述 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本.通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远 ...
- ansible playbook play task执行顺序
当我们使用ansible-playbook执行playbook,我们可以指定一个或者多个playbook,而一个playbook中可以有多个play,这些play下面又会存在一个或者多个task,这些 ...
- Ansible PlayBook语法
PlayBook语法实例 playbook是由一个或多个play组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过Ansible中的tasks定义好的角色(play的内容被称为ta ...
- Ansible剧本管理(实例演释!!!)
inventory主机清单 ansible默认的主机清单是/etc/ansible/hosts文件,主机清单可以手动设置,也可以通过Dynamic Inventory动态生成,一般主机名使用FQDN ...
- 自动化运维工具-----Ansible playbook详解
目录 一.Ansible playbook简介 二.Ansible playbook使用场景 三.Ansible playbook格式 格式简介 核心元素 基本组件 variables变量 模板tem ...
- ansible笔记(11):初识ansible playbook(二)
ansible笔记(11):初识ansible playbook(二)有前文作为基础,如下示例是非常容易理解的:--- - hosts: test211remote_user: roottasks:- ...
- Python+Django+Ansible Playbook自动化运维项目实战(二)
Python+Django+Ansible Playbook自动化运维项目实战 一.资产管理,自动化发现.扫描 1.服务端资产探测.扫描发现 1)资产管理的资产: 2)抽象与约定: 2.探测协议和模块 ...
- Python+Django+Ansible Playbook自动化运维项目实战:资产管理
Python+Django+Ansible Playbook自动化运维项目实战 一.资产管理,自动化发现.扫描 1.服务端资产探测.扫描发现 1)资产管理的资产: 2)抽象与约定: 2.探测协议和模块 ...
- Ansible playbook
1.什么是playbook playbook :定义一个文本文件,以yml为后缀结尾,那playbook组成如下. play:定义的是主机的角色 task: 定义的是具体执行的任务 总结:playbo ...
最新文章
- java转账_使用Java模拟银行账户存、取款、转账功能
- java中类的加载及执行顺序
- OpenCV学习:播放avi视频文件
- python循环for不从零开始_Python-多处理-巨大的for循环
- c语言多个子函数声明,C函数在多个源文件中的声明和定义
- PAT乙级(1001 害死⼈不偿命的(3n+1)猜想)
- 147. Insertion Sort List
- 聚合数据接口,提供开放API
- html5 怎么入门,初学HTML5 从入门到精通你需要懂得这些
- 计算IO设备、CPU利用率
- win10系统 专业版 安装教程
- bzoj 4034: [HAOI2015]T2
- 百度统计的使用技巧_SEO建议
- 小白学习java第11天多态抽象类接口
- NO.3 创建一个图片,并在图片上画线插入文字等
- 计算IP地址所在网段
- 【pg Postgres】 Postgres解决Permission denied for relation
- 阿里工程师谈,什么是好的代码?
- QQ号码丢了不用着急 一步一步找回来
- 云计算“战场”硝烟弥漫,巨头争相降价抢市场
热门文章
- sqlserver触发器如何将一个库中的数据插入到另外一个库中
- [NHibernate]一对多关系(级联删除,级联添加)
- 好奇:WayOs破解、OEM、修复、打包等工具大全,满足大家的好奇心发下截图
- 怎么根据输入的n来输入n组数组_【题解一维数组】1106:年龄与疾病
- 24个整点报时_大连交通广播整点报时广告怎么做?大连交通广播全新广告价格...
- DFA和NFA的区别
- dbForge Schema Compare for MySQL入门教程:预览架构同步脚本和同步架构
- 做图表统计你需要掌握SQL Server 行转列和列转行
- ISA2006发布Exchange服务器 RPC OVER HTTPS
- linux的functions之killproc函数详解