设为首页 收藏本站
查看: 874|回复: 0

[经验分享] 4、python自动化运维——集中化管理平台Saltstack

[复制链接]

尚未签到

发表于 2018-7-31 07:39:57 | 显示全部楼层 |阅读模式
集中化管理平台——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

API调用示例:
  import salt.client
  client = salt.client.LocalClient()

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-543819-1-1.html 上篇帖子: SaltStack远程执行两大模块:cmd与cp模块测试 下篇帖子: SaltStack配置管理之Gains与State测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表