Saltstack是一个新的基础设施管理工具。目前处于快速发展阶段,可以看做是pssh+弱化的Puppet的组合。间接的反映出了saltstack的两大功能:远程执行和配置管理。
1. saltstack安装
1
2
3
4
|
#导入EPEL YUM源 rpm -Uvh http: //mirror .pnl.gov /epel/5/i386/epel-release-5-4 .noarch.rpm
#服务器master的安装 yum -y install salt-master
|
1
2
3
|
#导入EPEL YUM源 rpm -Uvh http: //mirror .pnl.gov /epel/5/i386/epel-release-5-4 .noarch.rpm
yum -y install salt-minion
|
1
2
3
4
5
6
7
|
wget -q -O - "http://debian.saltstack.com/debian-salt-team-joehealy.gpg.key" | apt-key add -
echo "deb http://debian.saltstack.com/debianwheezy-saltstack main" /etc/apt/sources .list
echo "debhttp://debian.saltstack.com/debian wheezy-saltstack main" | tee /etc/apt/sources .list
apt-get update apt-get installsalt-master # On the salt-master
apt-get installsalt-minion # On each salt-minion
apt-get install salt-syndic
|
2. saltstacks配置文件修改
master端配置文件修改
1
2
3
|
vi /etc/salt/master
interface: 115.28.2.1 #此处是server端监听的地址。
auto_accept: True #此处是自动接受客户端发送过来的key,如果服务器很多的话,需要开启该功能。
|
1
2
|
/etc/salt/master -d #后台启动
/etc/salt/master #前台启动,方便调试
|
minion端配置文件修改:
1
2
3
4
5
6
7
8
9
|
#vi /etc/salt/minion master: 115.28.2.1 #这里改成你的master服务器地址
id : web01 #建议这里修改成主机名,便于master端分辨
#在配置文件末尾加入下面内容,每隔5分钟自动同步master配置,效果等同于在客户端执行salt-call state.highstate或在server端执行 salt '*'state.highstate schedule: highstate:
function : state.highstate
minutes: 5
|
1
2
3
|
/etc/salt/minion -d #后台启动
/etc/salt/minion #前台启动,方便调试
注:minion启动后,自动会生成公钥私钥,并把公钥发送到master端。minion不监听端口,全靠和master保持长连接,可通过 netstat -an| grep ES来查看是否有连接。
|
3. salt-key证书管理
1
2
3
4
5
|
salt-key -L #查询所有接收到的证书
salt-key -a <证书名> #接收单个证书
salt-key -A #接受所有证书
salt-key -d <证书名> #删除单个证书
salt-key -D #删除所有证书
|
4. salt实时批量操作
1
|
salt [选项] '<target>' < function > [arguments]
|
1
2
3
4
5
6
7
8
9
10
11
|
salt '*' test . ping #*为匹配所有主机,test.ping为salt一个函数,注:*号是正则,若分了多个组,可以类似于web*,只匹配web服务器 salt '*' cmd.run 'df -h' #查看所有主机的磁盘信息,cmd.run执行单个命令 salt '*' cmd.script salt: //hello .sh
salt '*' cmd.script salt: //scripts/runme .sh 'arg1 arg2 "arg 3"'
#cmd.script执行一个脚本,即把本地脚本拷贝到远程主机上执行,hello.sh要放在指定的文件存放路径,默认是/srv/salt/ salt '*' state.highstate
#向客户端推送master端配置。
salt '*' cmd.run 'df -h ' -t 5
#超时控制
|
5. salt分组管理
1
2
3
4
5
6
|
[root@yang salt] # vimaster.d/group.conf
nodegroups: group1: 'L@DG-Server-27,DG-Server-28'
group2: 'L@qsmind'
#分组格式可在/etc/salt/master中搜索group看示例 |
1
|
salt -N group1 cmd.run 'hostname'
|
6. salt-ssh远程主机批量自动登陆
7. salt-run检查客户端up状态
1
2
3
|
salt-run manage.status #查看所有客户端up/down状态
salt-run manage.up #只显示up状态的客户端
salt-run manage.down #只显示down状态的客户端
|
8. salt-cp批量拷贝文件
1
2
3
4
5
|
语法: salt- cp [options] '<target>' SOURCE DEST
示例: salt- cp '*' /etc/hosts /etc/hosts #把master上的hosts文件分发到所有主机。
|
9. saltstack定时同步
1
2
3
4
|
schedule:
highstate:
function :state.highstate
seconds:300
|
10. saltstack自动分发目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@yang salt] # cat /srv/salt/top.sls
base: "DG-Server*" :
- ssh_key.key
- zabbix.zabbix #在top.sls文件中指定哪些主机访问哪些目录 [root@yang salt] # cat /srv/salt/zabbix/zabbix.sls
/usr/local/zabbix/scripts : #指定minion端同步后生成的目录
file .recurse:
- source : salt: //zabbix/zabbix_scripts #指定要master端同步的原始目录,以后只要把想要分发的文件放在这个目录中,就会自动同步了。
- dir_mode: 755 - file_mode: 744 #用dir_mode和file_mode来设置文件和目录的权限 |
11. saltstack自动分发文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@yang salt] # cat /srv/salt/top.sls
base: "DG-Server*" :
- ssh_key.key
- zabbix.zabbix [root@yang zabbix] # cat /srv/salt/zabbix/zabbix.sls
/usr/local/zabbix/etc/zabbix_agentd .conf.d /UserParameter .conf: #指定在minion端生成的文件名
file .managed:
- source : salt: //zabbix/UserParameter .conf #指定在master同步的原始文件
- backup: minion #当文件发生变化时,都会把原文件备份,备份文件目录:/var/cache/salt/minion/file_backup/
- mode: 744
- user: root
- group: root
|
12. saltstack进程状态管理
13. saltstack自定义模块
相关推荐
自动化运维工具 SaltStack 的研究与自动化运维平台建设方法分析 SaltStack 是一种自动化运维工具,主要用于服务器的自动化运维管理。通过对 SaltStack 的研究和二次开发,可以实现服务器之间的配置管理、批量部署...
【自动化运维工具SaltStack的研究与自动化运维平台建设方法分析】 自动化运维工具SaltStack是现代IT环境中用于高效管理大规模服务器集群的重要工具。随着云计算和虚拟化技术的发展,传统的手动运维方式已经无法满足...
【自动化运维工具SaltStack在云计算环境中的实践】 随着云计算技术的快速发展,企业的IT环境变得日益复杂,传统的运维方式已无法适应大规模、高效率的需求。此时,自动化运维工具的重要性凸显出来,其中SaltStack...
Linux 运维笔记:Saltstack 自动化运维与实战 Saltstack 是一个服务器基础架构集中化管理平台,它...Saltstack 是一个功能强大且扩展性强的自动化运维工具,它可以帮助运维人员提高工作效率、规范业务配置与操作。
总的来说,Python 自动化运维系统(saltstack+django+bootstrap)的组合提供了从后台管理到前端展示的全面解决方案,是现代 IT 基础设施自动化管理的一个有力工具。通过深入理解和实践,你可以构建出更加高效、便捷...
总的来说,CheungSSH是一个强大且实用的自动化运维工具,通过它,IT专业人员可以更加高效地管理多台服务器,降低运维复杂度,提升运维质量。无论是小型企业还是大型数据中心,都可以从CheungSSH中受益。对于想要提升...
SaltStack 自动化运维使用详解 SaltStack 是基于 Python 开发的 C/S 架构的一款批量管理工具,具有轻松部署、快速管理、安全可靠等特点。下面是 SaltStack 的详细知识点: 架构模式 SaltStack 采用 C/S 架构模式...
自动化运维工具 SaltStack 在云计算环境中的实践随着云计算技术的快速普及与发展,越来越多的企业开始学习和搭建自己的云平台代替传统的 IT 交付模式,企业的 IT 环境也随之越来越复杂,常规的运维方法与技术已经...
自动化运维是指通过使用自动化工具和技术来简化和加速日常运维任务的过程。它可以帮助企业更高效地管理服务器、应用程序和服务,同时降低出错率和运维成本。 ##### 2.2 Python在自动化运维中的优势 - **简洁性**:...
在具体实践中,以SaltStack为例,介绍自动化运维工具的部署及过程中的注意事项、故障诊断等内容。 - **部署准备**: - 安装Salt Master服务器作为控制中心。 - 在各目标服务器上安装Salt Minion,作为被管理端。 ...
【基于SaltStack的自动化运维实践】是一篇关于赵班长在运维领域的专业知识分享,重点围绕SaltStack这一自动化运维工具展开。赵班长,本名赵舜东,是中国SaltStack用户组的发起人,拥有丰富的运维背景,从指挥自动化...
自动化运维是指通过软件工具和技术来自动执行日常运维任务,例如监控、配置管理、故障恢复和性能优化等。这样,运维人员可以将更多的精力放在问题分析、策略规划和系统优化上,而不是简单地处理日常维护工作。 脚本...
### Ansible、Puppet、SaltStack三款自动化运维工具的对比 #### 一、基础介绍 在DevOps领域,自动化运维工具是实现高效部署、管理大规模服务器集群的关键。Ansible、Puppet 和 SaltStack 是目前业界较为知名的三款...
自动化运维路线图也提到了Puppet和SaltStack这两种自动化工具,它们可以用于二次开发,以实现业务代码的后台界面化上线发布。审计需求涉及了服务器错误和异常日志的采集,以及系统运行的分析,这些都是为了提高安全...
SaltStack 自动化运维工作原理及安装配置手册是介绍 SaltStack 自动化运维工具的工作原理和架构,并通过实例详述了如何使用 SaltStack 对云环境中的服务器进行命令的远程执行及配置管理,确保操作的安全性及高效性。...
本文设计并实现了一个自动化运维系统,该系统使用 VIM 开发工具、Python 开发语言、MySQL 数据库和 SaltStack 集中化运维管理工具,基于 web.py 架构完成。系统设计实现的功能包括账户管理、主机管理、已加入 ...