四、python自动化运维——集中化管理平台Saltstack

集中化管理平台——Saltstack

Saltstck做为服务器基础架构集中化管理平台,具有配置管理,远程执行,监控等功能。能够简单地理解为简化版的puppet,增强版的func。废话很少说,直接上手。php

一、Saltstack安装以及配置

安装所须要的组件:
主控端:salt-master
被控端:salt-minionnginx

安装步骤

一、安装所须要的epel做为部署saltstack的yum源:
yum install -y epelweb

二、安装salt-master/salt-minion:
yum install -y salt-master
yum install -y salt-minion服务器

三、设置服务开机启动:
systemctl enable salt-master / systemctl enable salt-minion网络

四、主控端添加防火墙
iptables -A INPUT -p tcp --dport 4405 -j ACCEPT
iptables -A INPUT -p tcp --dport 4406 -j ACCEPT架构

五、修改服务端配置和客户端配置
修改主控端配置(/etc/salt/master):app

interface: 192.168.118.132 #绑定Master通讯IP
auto_accept: True #自动认证
file_roots:
 base:
- /srv/salt
#指定SaltStack文件目录

重启主控端端SaltStack: service restart salt-mastertcp

修改被控端配置(/etc/salt/minion)ide

master:192.168.118.132 #指定Master主机IP地址
id:mbb_server #被控主机端识别ID

重启被控端SaltStack:service restart salt-minion工具

检验安装结果:salt '*' test.ping

二、经常使用模块及API

saltstack 提供了很是丰富的功能模块,涉及到了操做系统的基础功能,经常使用工具的支持。

API调用示例:

import salt.client
client = salt.client.LocalClient()

Archive模块(支持gunzip,gzip,rar,tar,unrar,unzip)

一、功能:实现系统层面的压缩包调用,支持gunzip,gzip,rar,tar,unrar

解压操做:
salt ‘*’ archive.gunzip /tmp/mbb.txt.gz
压缩操做
salt ‘*’ archive.gzip /tmp/mbb.txt

二、API调用

client.cmd(‘*’,’archive.gzip’,[‘/tmp/mbb.txt’])

cmd模块

一、功能:实现远程的命令行调用执行(默认具有root操做权限,使用时须要评估风险)

模块示例:
salt ‘*’ cmd.run “free -m”

二、API调用

client.cmd(‘*’,’cmd.run’,[‘free -m’])

cp模块

一、功能:实现远程文件,目录的复制,以及下载URL文件等操做

将指定被控端的文件复制到主控端的本地目录:
salt ‘*’ cp.cache_local_file /etc/hosts

cron模块

一、功能:实现被控主机的crontab操做

查看指定被控主机
salt ‘mbb_208’ cron.raw_cron root
未指定的被控端、root用户添加echo 1 > mbb.txt任务做业
salt ‘mbb_208’ cron.set_job root ‘*’ ‘*’ ‘*’ ‘*’ 1 “echo 1 > mbb.txt”
删除指定的被控端,root用户crontab的echo 1 > mbb.txt 任务做业
salt 'mbb_208' cron.rm_job root "echo 1 > lsk.txt"

二、API调用

client.cnd(‘mbb_208’,’cron.rm_job’,[‘root’*’,’*’,’*’,’*’,1,”echo 1 > mbb.txt”])

iptables模块

一、实现被控主机的iptables操做

添加iptables规则
salt 'mbb_208' iptables.insert filter INPUT position=1 rule="-p tcp --dport 4405 -j ACCEPT"
salt 'mbb_208' iptables.append filter INPUT rule="-p tcp --dport 4406 -j ACCEPT"

删除iptables规则
salt 'mbb_208' iptables.delete filter INPUT  position=1

二、API调用

client.cmd('mbb_208','iptables.insert',['filter','INPUT','position=1','rule=\'-p tcp --dport 21 -j ACCEPT\''])

network模块

一、功能:返回被控端的网络信息

获取dig,ping,traceroute目录域名信息
salt 'mbb_208' network.dig www.baidu.com
salt 'mbb_208' network.ping www.baidu.com
salt 'mbb_208' network.traceroute www.baidu.com
获取被控端制定网卡绑定的mac地址
salt 'mbb_208' network.hwaddr eth0
获取被控端网卡配置信息
salt  mbb_208' network.interfaces
获取被控端的ip地址配置信息
salt 'mbb_208' network.ip_addrs
获取被控的子网信息
salt 'mbb_208' network.subnets

二、API调用

client.cmd('mbb_208','network.interfaces')

pkg模块

一、功能:被控主机的程序管理,如:yum,apt-get

安装php
salt ‘mbb_208’ pkg.install php
卸载php
salt ‘mbb_208’ pkg.remove php
升级php
salt ‘mbb_208’ pkg.upgrade php

二、API调用

client.cmd(‘mbb_208’,’pkg.install’,[‘php’])

Service模块

一、功能:被控主机的程序包服务管理

salt 'mbb_208' service.start httpd
salt 'mbb_208' service.stop httpd
salt 'mbb_208' service.reload httpd
salt 'mbb_208' service.restart httpd
salt 'mbb_208' service.status httpd
salt 'mbb_208' service.enable httpd
salt 'mbb_208' service.disable httpd

二、API调用

client.cmd(‘mbb_208’,’service.start’,[‘nginx’])

grains组件

grains是Saltstack最重要的组件之一,grains的做用是收集被控端的基本信息,这些信息通常都是静态类的数据,包括CPU,内核,操做系统,虚拟化等

获取被控主机的全部grains信息
salt ‘*’ grains.items

被控主机端定制特定的granis数据

登陆被控主机端,在/etc/salt/minion.d/ 目录下,添加”*.conf”配置文件
grains:
  roles:
    - webserver
    - memcache
  deployment: datacenter4
  cabinet: 13
在主控端:
salt 'mbb_208' grains.item roles deployment cabinet
相关文章
相关标签/搜索