一、安装部署
实验环境:
Server : 192.168.0.41
Client-1: 192.168.0.42
Client-2: 192.168.0.43
1、安装epel源。
rpm -Uvh http://mirrors.sohu.com/fedora-epel/6Server/x86_64/epel-release-6-8.noarch.rpm
2. 服务端安装salt-master,客户端安装salt-minion
3. 修改客户端配置文件/etc/salt/minion
修改两个参数
如不修改将使用默认值,分别为salt和自身主机名,需要将服务端主机名和IP写入到hosts文件
4. 服务端启动服务
/etc/init.d/salt-master start
5. 客户端启动服务
/etc/init.d/salt-minion start
6. 测试:配置/etc/salt/master文件 将log_level设置成debug,再看/var/log/master,看SALT的详细启动过程。
二、实战
1、添加KEY授权
2、实测命令:
3、实测命令:
1. 工作中遇到主机名问题导致服务连接不了怎么办?
删除/etc/salt/minion_id文件和pki/目录重启服务即可
或者用salt-key -d删除该机器即可
2. 如何在不停止minion服务的情况下来迁移master到更高性能的机器?
解决方案原理:
a、将旧master上所有的key复制到新master,保持所有key不变,保证minion服务不会关闭。
b、将minion机器配置文件里的server改为新master。
3、SaltStack内置返回接口:
1. 将return结果存入MySQL数据库,需要在minion客户端配置/etc/salt/minion配置文件,设置MySQL账号信息。
注意:该方式需在minion端安装python的mysql模块!
配置文件添加参数:
################################################
# MySQL-Return Paragram by asling on 2015-11-16
#
mysql.host:‘192.168.0.90‘
mysql.user:‘salt‘
mysql.pass:‘123456‘
mysql.db:‘saltstack‘
mysql.port:3306
#
################################################
2 MySQL服务器建库建表,使用以下建表语句:
CREATE TABLE `jids` (
-> `jid` varchar(255) NOT NULL,
-> `load` mediumtext NOT NULL,
-> UNIQUE KEY `jid` (`jid`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `salt_returns` (
-> `fun` varchar(50) NOT NULL,
-> `jid` varchar(255) NOT NULL,
-> `return` mediumtext NOT NULL,
-> `id` varchar(255) NOT NULL,
-> `success` varchar(10) NOT NULL,
-> `full_ret` mediumtext NOT NULL,
-> KEY `id` (`id`),
-> KEY `jid` (`jid`),
-> KEY `fun` (`fun`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. Python导入MYSQL模块
python
>>> import MySQLdb
>>> exit()
4. minion端测试看MySQL结果。
4、SaltStack分组
参考 SaltStack 的官方文档 4.4 Compound matchers 和 4.3. Node groups 知道,对目标服务器分组有以下七种方式,这七种方式的标示符分别为:
G -- 针对 Grains 做单个匹配,例如:G@os:Ubuntu
E -- 针对 minion 针对正则表达式做匹配,例如:E@web\d+.(dev|qa|prod).loc
P -- 针对 Grains 做正则表达式匹配,例如:P@os:(RedHat|Fedora|CentOS)
L -- 针对 minion 做列表匹配,例如:L@minion1.example.com,minion3.domain.com or bl*.domain.com
I -- 针对 Pillar 做单个匹配,例如:I@pdata:foobar
S -- 针对子网或是 IP 做匹配,例如:S@192.168.1.0/24 or S@192.168.1.100
R -- 针对客户端范围做匹配,例如: R@%foo.bar
实测:
4、SaltStack模块
见附件!
5、SaltStack文件系统
原文地址:http://xiangpang.blog.51cto.com/10719398/1712990