准备环境
- 操作系统:CentOS 7.5 64位
- 参考资料:SaltStack帮助文档
虚拟机初始化配置
- 参考资料:MySQL5.7单机版安装 - 准备环境
注意:修改主机名为“salt-master”
开始安装
配置SaltStack yum源:
[root@salt-master ~]# vim /etc/yum.repos.d/saltstack.repo
文件内容:
[saltstack-repo]
name=SaltStack repo for RHEL/CentOS $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
加载yum源:
[root@salt-master ~]# yum makecache
安装salt-master:
[root@salt-master ~]# yum install -y salt-master
配置master开机自动启动:
[root@salt-master ~]# systemctl enable salt-master
启动Master:
[root@salt-master ~]# systemctl start salt-master
配置salt-master
配置文件:/etc/salt/master
配置文件根目录:
[root@salt-master ~]# vim /etc/salt/master +/file_roots
修改内容:
file_roots:
base:
- /srv/salt/base
配置事件或返回值写入MySQL数据库:
mysql.host: 'salt'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306
配置
MySQL 数据库操作
- 参考资料:返回值写入MySQL数据库
配置salt数据库:
CREATE DATABASE `salt`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
USE `salt`;
--
-- Table structure for table `jids`
--
DROP TABLE IF EXISTS `jids`;
CREATE TABLE `jids` (
`jid` varchar(255) NOT NULL,
`load` mediumtext NOT NULL,
UNIQUE KEY `jid` (`jid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX jid ON jids(jid) USING BTREE;
--
-- Table structure for table `salt_returns`
--
DROP TABLE IF EXISTS `salt_returns`;
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,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
KEY `id` (`id`),
KEY `jid` (`jid`),
KEY `fun` (`fun`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Table structure for table `salt_events`
--
DROP TABLE IF EXISTS `salt_events`;
CREATE TABLE `salt_events` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
`data` mediumtext NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`master_id` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `tag` (`tag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
配置数据库账号salt,及访问权限:
mysql> grant all privileges on salt.* to 'salt'@'%' identified by 'Salt@1234' with grant option;
如果salt-minion安装及配置完成
[root@salt-master ~]# salt-key all
[root@salt-master ~]# salt-key -A -y
验证安装成功
[root@salt-master ~]# systemctl restart salt-master
[root@salt-master ~]# salt '*' test.ping
jobs管理
参考官方文档:Job Management
查看正在运行的jobs
[root@salt-master ~]# salt-run jobs.active
停止正在运行jobs
[root@salt-master ~]# salt '*' saltutil.kill_job 1512