关键词:
最近看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 process script: /etc/ansible/roles/agent/stop.sh - name: remove link file: path={{ agent_home }}/{{ bag }} state=absent - name: scp agent copy: src=agent.tgz dest={{ agent_home }} - name: tar zxf agent.tgz shell: chdir={{ agent_home }} tar -zxf agent.tgz - name: link file: src={{ agent_home }}/{{ bag }}-{{ version }} dest={{ agent_home }}/{{ bag }} state=link - name: running agent shell: cd {{ agent_home }}/{{ bag }} && nohup python swift_agent.py > agent.log 2>&1 & - name: remove agent.tgz file: 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
本文出自 “LINUX Super梦” 博客,请务必保留此出处http://215687833.blog.51cto.com/6724358/1886323
精通matlab最优化计算的实例目录
参考技术A第2章MATLAB计算基础例2-1元胞数组创建与显示实例。20例2-2矩阵创建实例。22例2-3特殊矩阵生成函数使用实例。23例2-4矩阵基本运算实例。24例2-5矩阵函数运算实例。24例2-6矩阵分解运算函数使用实例。25例2-7复数构造实例... 查看详情
如何根据另一个实例组中的实例数来扩展实例组
】如何根据另一个实例组中的实例数来扩展实例组【英文标题】:HowtoscaleInstanceGroupbasingonthenumberofinstancesinsideanotherinstancegroup【发布时间】:2020-01-1310:45:07【问题描述】:如何根据另一个实例组中正在运行的虚拟机数量为实例组... 查看详情
awsemr实例组竞价实例扩展失败切换按需实例方法
背景本文介绍如何解决EMR集群实例组模式下竞价实例请求失败后无法切换到按需实例问题,本文通过CloudWatch+Lambda实现在EMR集群竞价实例请求失败情况下补充制定数量的按需实例到EMR集群。目前较多公司使用EMR构建大数据平台,... 查看详情
jQueryFileTree 如何清除实例、重新实例化新实例或刷新
】jQueryFileTree如何清除实例、重新实例化新实例或刷新【英文标题】:jQueryFileTreeHowtoclearinstance,reinstantiatenewinstanceorrefresh【发布时间】:2016-04-0811:13:21【问题描述】:我正在使用jQueryFileTree。通过javascriptajax(旧式javascriptxmlhttp请... 查看详情
6.静态方法和实例方法
...静态方法; 作用:简化编程,方便调用。 (2)实例方法:不含static关键字的即为实例方法。即使用实例对象调用的方法;2、方法调用(实例) (1)实例方法可以使用类的任何成员,即静态和实例成员。 (2)... 查看详情
多实例学习的可变实例数
】多实例学习的可变实例数【英文标题】:VariablenumberofinstancesforMultipleInstanceLearning【发布时间】:2021-05-3017:44:52【问题描述】:我正在尝试针对二进制分类问题进行多实例学习,其中每个实例包都有一个关联的标签0/1。但是,... 查看详情
0 个实例与 Elastic Beanstalk 单实例?
】0个实例与ElasticBeanstalk单实例?【英文标题】:0instanceswithElasticBeanstalkSingleInstances?【发布时间】:2016-05-1818:32:35【问题描述】:我克隆了一个有1个实例并且是单实例环境的环境。我克隆了它,现在我有一个包含0个实例的单实... 查看详情
sqlserver啥是实例?
就是一个在数据库中存在的,现实的数据库例子!数据库实例就是后台进程和数据库文件的集合。一个SQLServer服务器就是一个实例,2000支持在同一个NT/2000Server操作系统装多个服务器,换言之,就是多个实例。多个SQLServer实例Micr... 查看详情
ALAssetsLibrary 多个实例与全局实例开销
】ALAssetsLibrary多个实例与全局实例开销【英文标题】:ALAssetsLibrarymultipleinstancesvsglobalinstanceoverhead【发布时间】:2014-07-1515:10:41【问题描述】:分配多个ALAssetsLibrary实例而不是使用一个实例访问多个资产的开销是多少?从相反的... 查看详情
原型链怎样给类下面的实例添加实例属性和实例方法
...到prototype这个关键字了,通过这个关键字可以给类下面的实例添加实例属性和方法,话不多说,直接上代码代码实例如下:functionPerson(name){this.name=name;}varp1=newPerson("zhangsan");Person.prototype.age=18;//为类下面的实例添加实例属性Person.p... 查看详情
如何获取 Lightsail 实例的实例名称
】如何获取Lightsail实例的实例名称【英文标题】:HowdoIgettheinstancenameofaLightsailinstance【发布时间】:2019-07-0821:21:23【问题描述】:如何找到“此”Lightsail实例的名称。“This”是正在执行aws命令的实例。我的下面的脚本不起作用,... 查看详情
vue3实例属性实例方法(代码片段)
//通过Vue实例对象可以直接访问的属性,称为实例属性 实例属性都以$开头 vm.$el:当前Vue实例使用的根dom元素 vm.$data:当前Vue实例观察的数据对象 vm.$options:当前Vue实例的初始化选项 vm.$re... 查看详情
实例变量作为其他实例变量的函数
】实例变量作为其他实例变量的函数【英文标题】:Instancevariableasfunctionofotherinstancevariables【发布时间】:2020-03-2202:15:52【问题描述】:是否可以将一个类中的实例变量定义为另一个类的函数?除非您一直重新定义“函数实例变... 查看详情
类属性和实例属性(代码片段)
类属性:直接在class中定义属性,通过类或者实例名称都可以访问,所有实例都可以共享。实例属性:通过self绑定属性,或者通过实例名动态添加属性。使用中,实例属性和类属性最好不要同名,不然会出现意想不到的问题。cla... 查看详情
创建实例后向 Vue 实例添加组件
】创建实例后向Vue实例添加组件【英文标题】:AddcomponentstoVueinstanceafterinstanceiscreated【发布时间】:2018-01-1712:15:19【问题描述】:如果你已经创建了一个像这样的VueJS实例......varapp=newVue(埃尔:\'#app\',成分:...)是否可以将组件... 查看详情
sqlserver中“实例”指的是啥?
一套唯一的系统和用户数据库吗所谓的实例实际上就是一个服务,在管理工具的服务里面能看到。默认的实例名是跟机器名相同的。多个SQLServer实例Microsoft®SQLServer™2000支持在同一台计算机上同时运行多个SQLServer数据库引... 查看详情
类的实例方法(代码片段)
实例方法method语法:class类名(继承列表):def实例方法名(self,参数1,参数2,...):‘文档字符串‘语句作用:用于描述一个对象的行为,让此类型的全部对象都拥有相同的行为说明:1.实例方法实质是函数,是定义在类内的函数2.实例方法至少... 查看详情
单实例和多实例的区别以及用途
1.单实例和多实例单实例一般会在类中自己实例化,通过getInstance获取该实例。ps:/** * 单例模式 */publicclassSingleton{ privatestaticSingletonsingleton=newSingleton(); priv 查看详情