码迷,mamicode.com
首页 > 其他好文 > 详细

ansible-playbook agent实例

时间:2016-12-27 01:36:00      阅读:275      评论:0      收藏:0      [点我收藏+]

标签: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=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

ansible-playbook agent实例

标签:ansible-playbook agent实例

原文地址:http://215687833.blog.51cto.com/6724358/1886323

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!