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

集中化管理平台——Saltstack

Saltstck作为服务器基础架构集中化管理平台,具备配置管理,远程执行,监控等功能。可以简单地理解为简化版的puppet,加强版的func。废话不多说,直接上手。

Saltstack安装以及配置

安装所需要的组件

主控端:salt-master
被控端:salt-minion

安装过程

1、安装所需要的epel作为部署saltstack的yum源:
yum install -y epel

2、安装salt-master/salt-minion
yum install -y salt-master
yum install -y salt-minion

3、设置服务开机启动
systemctl enable salt-master / systemctl enable salt-minion

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

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

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

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

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

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

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

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

API调用示例:

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

常用模块及API

Archive模块(支持gunzip,gzip,rar,tar,unrar,unzip)
1、功能:实现系统层面的压缩包调用,支持gunzip,gzip,rar,tar,unrar

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

2、API调用

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

cmd模块

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

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

3、API调用

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

cp模块

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

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

cron模块

1、功能:实现被控主机的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"

2、API调用

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

iptables模块

1、实现被控主机的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

2、API调用

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

network模块

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

获取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

3、API调用

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

pkg模块

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

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

2、API调用

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

Service模块

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

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

2、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

原文地址:http://blog.51cto.com/mbb97/2084530

时间: 2024-10-09 21:44:15

4、python自动化运维——集中化管理平台Saltstack的相关文章

5、python自动化运维——集中化管理平台Ansible

集中化管理平台Ansible 简介:Ansible是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台特点:1.部署简单,只需在主控端部署Ansible环境,被控端不用进行任何操作2.默认使用SSH协议对设备进行管理3.主从集中化管理4.提供一个Web管理界面和RESET API接口--AWX平台 Ansible安装及配置 1.安装ansible:yum install –y ansible 2.修改配置文件:/etc/ansible/hosts,添加主机IP. 193.192.168

自动化运维集中式管理工具saltstack的基于各个平台的部署

集中式管理工具saltstack是兼容Linux.Windows.Unix平台,能实现服务器的批量管理,命令或脚本下发,软件部署,环境搭建,配置管理,是运维人员的提高管理效率的工具.至于更详细的功能与优势这里不再介绍,网络上有很多前辈有介绍,这里只介绍部署方法. 部署环境 saltstack版本:2015.8.7 服务端master:CentOS6.7   master 被控段minion:CentOS5.11   minion01 CentOS6.7    minion02 CentOS7.2

电子书 Python自动化运维:技术与最佳实践.pdf

本书在中国运维领域将有"划时代"的重要意义:一方面,这是国内一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的作者是中国运维领域的"偶像级"人物,本书是他在天涯社区和腾讯近10年工作经验的结晶.因为作者实战经验丰富,所以能高屋建瓴.直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息.服务监控.数据报表.系统安全等基础模块,而且深入讲解了自动化操作.系统管理.配置管理.集群管理及大数据应用等高级功能.重要的是,完整重现了4个

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

Python自动化运维课程学习--Day2

本文为参加老男孩Python自动化运维课程第二天学习内容的总结. 大致内容如下: 1.python模块初识 2.python程序运行流程 3.python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set) 4.python数据运算 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 --Python IDE: PyCharm

CustomerWise助力网目信息,支持全球IT外包运维流程化管理

2014年4月,北京--TechExcel喜签网目信息技术(上海)有限公司(以下简称"网目信息"),采用TechExcel公司CustomerWise产品助力其建立全球用户统一门户,统一各分公司的服务标准和服务流程,为用户提供全球标准化的服务. ICONZ-Webvisions公司(网目信息)总部设在新加坡,拥有20多年的IT运维及外包服务经验历史,是唯一以亚洲为中心,为亚洲.澳大利亚和全球市场提供"云"和托管服务的供应商.ICONZ-Webvisions可以利用其

python自动化运维之路~DAY7

python自动化运维之路~DAY7 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.客户端/服务器架构 C/S 架构是一种典型的两层架构,其全称是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据:另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信. C/S 架构也可以看做是胖客户端架构.因为客户端需要实现绝大多数的业务

python自动化运维之路~DAY10

python自动化运维之路~DAY10 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

python自动化运维之集中病毒扫描

1.因为我linux的python是2.6.6,所以因为有些模块是2.7的,先进行升级. 步骤地址:http://www.linuxidc.com/Linux/2014-07/104555.htm 2.安装pyclamd yum install -y clamav clamd clamav-update 安装clamavp的相关程序包 chkconfig --level 235 clamd on /usr/bin/freshclam pyClamd-0.3.15.tar.gz安装包安装 3.vi