ansible-playbook agent实例

简介:

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


以下比较简单:

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


主要是推发布系统的agent:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
$ 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的树形结构如下:

1
2
3
4
5
6
7
8
9
10
11
$ tree agent
agent
├── files
│   └── agent.tgz
├── handlers
├── stop.sh
├── tasks
│   └── main.yaml
├── templates
└── vars
     └── main.yaml

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
- 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 主要是定义几个变量。

1
2
3
4
5
cat  main.yaml 
agent_home:  /data
user: ody
version: v3.0
bag: agent

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

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


本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1886323

相关文章
|
5月前
|
监控 Docker 容器
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
755 0
|
Java 测试技术 Android开发
Sonic 开源移动端云真机测试平台 - 设备中心接入安卓设备实例演示,Agent端服务部署过程详解(下)
Sonic 开源移动端云真机测试平台 - 设备中心接入安卓设备实例演示,Agent端服务部署过程详解
399 0
|
Web App开发 JavaScript Java
Sonic 开源移动端云真机测试平台 - 设备中心接入安卓设备实例演示,Agent端服务部署过程详解(上)
Sonic 开源移动端云真机测试平台 - 设备中心接入安卓设备实例演示,Agent端服务部署过程详解
463 0
|
2月前
|
存储 人工智能
|
4天前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
22 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
25天前
|
人工智能 JSON 数据格式
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
【9月更文挑战第6天】RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
|
27天前
|
人工智能 算法 自动驾驶
用AI自动设计智能体,数学提分25.9%,远超手工设计
【9月更文挑战第18天】《智能体自动设计(ADAS)》是由不列颠哥伦比亚大学等机构的研究者们发布的一篇关于自动化设计智能体系统的最新论文。研究中提出了一种创新算法——“Meta Agent Search”,此算法通过迭代生成并优化智能体设计,从而实现更高效的智能体系统构建。实验表明,相比人工设计的智能体,Meta Agent Search生成的智能体在多个领域均有显著的性能提升。然而,该方法也面临着实际应用中的有效性与鲁棒性等挑战。论文详细内容及实验结果可于以下链接查阅:https://arxiv.org/pdf/2408.08435。
74 12
|
18天前
|
人工智能 自然语言处理 API
深入浅出 LangChain 与智能 Agent:构建下一代 AI 助手
我们小时候都玩过乐高积木。通过堆砌各种颜色和形状的积木,我们可以构建出城堡、飞机、甚至整个城市。现在,想象一下如果有一个数字世界的乐高,我们可以用这样的“积木”来构建智能程序,这些程序能够阅读、理解和撰写文本,甚至与我们对话。这就是大型语言模型(LLM)能够做到的,比如 GPT-4,它就像是一套庞大的乐高积木套装,等待我们来发掘和搭建。
|
1月前
|
人工智能 JSON 自然语言处理
你的Agent稳定吗?——基于大模型的AI工程实践思考
本文总结了作者在盒马智能客服的落地场景下的一些思考,从工程的角度阐述对Agent应用重要的稳定性因素和一些解法。