首页 > 代码库 > ansible-playbook agent实例

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 process
  script: /etc/ansible/roles/agent/stop.sh
- name: remove link
  file: path={{ agent_home }}/{{ bag }}  state=absent
- name: scp agent
  copy: src=http://www.mamicode.com/agent.tgz dest={{ agent_home }}>

#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

ansible-playbook agent实例