Ansible运维自动化

scadm 2021年4月25日00:31:05
评论
346 1315字

最近想把手上上百多台的vps全部纳入公司的管理平台统一管理,管理方式是通过snmp的方式进行通信。现在问题来了,这些vps的snmp配置参差不齐,有些连snmp都没有安装。上百多台机器要手动一台台去配置效率太低。这时候ansible就体现出它的价值了。

一、ansible结构

├── hosts
├── roles
│   └── snmp
│       ├── files
│       │   ├── snmpd
│       │   └── snmpd.conf
│       ├── tasks
│       │   ├── copy.yml
│       │   ├── delete.yml
│       │   ├── install.yml
│       │   └── main.yml
│       ├── templates
│       └── main.yml
└── site.yml

PS:

hosts:里面是需要更改的机器IP

roles:是规则文件夹,下面可以根据不同的规则定义不同的文件夹,如:snmp

files:存放需要同步到其他机器的文件

tasks:工作脚本

main.yml:主脚本

site.yml:指定hosts和roles的规则文件夹

二、脚本内容

site.yml

---
- hosts: all
roles:
- snmp

PS:运行hosts里的全部ip和调用snmp文件夹下的脚本

main.yml

- include: install.yml
- include: copy.yml

PS:运行install.yml和copy.yml脚本

copy.yml

- name: Copy configure file
copy: src={{ item }} dest=/etc/snmp/
with_items:
- snmpd.conf
- name: restart snmpd
shell: /etc/init.d/snmpd restart

PS:

-name:相当于注释

copy:src后面跟的是一个变量,方便修改;dest的路径是copy到目标机器的路径

with_items:src上的变量

shell:脚本命令

install.yml

- name: install snmpd
shell: yum install -y {{ item }} {{ item }}
with_items:
- net-snmp
- net-snmp-utils

三、语法命令

1、基本命令

ansible-playbook -i hosts site.yml

2、不想一次全部运行hosts里的ip

ansible-playbook -i hosts site.yml --extra-vars "hosts=db"

PS:--extra-vars指定运行的ip组

这时候还需要更改以下几个地方:

1、hosts文件的格式(把IP分成了db和ap两组)

[db]
192.168.1.10
[ap]
192.168.1.11

2、site.yml格式(hosts后面的all替换成'{{hosts}}')

---
- hosts: '{{ hosts }}'
roles:
- snmp

3、main.yml格式(添加when语句,指定运行db组)

- include: install.yml
when:"hosts == 'db'"
- include: copy.yml
when:"hosts == 'db'"

 

继续阅读
scadm
  • 本文由 发表于 2021年4月25日00:31:05
  • 转载请务必保留本文链接:https://www.wscyun.com/1002
Jenkins-2.319 安装部署 运维

Jenkins-2.319 安装部署

Jenkins持续集成简介 持续集成(Continuous Integration,CI|CD)是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础,持续集成意义如下: 持续集成中...
自动化装机工具-kickstart 运维

自动化装机工具-kickstart

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统===>一个服务器DV...
自动化装机工具-cobbler 服务器

自动化装机工具-cobbler

在看Cobbler之前请大家先看一下Kickstart无人值守安装,了解一下Cobbler的实现原理。但是Cobbler是独立的,不需要先安装Kickstart然后再安装Cobbler,这是写给不了解...