SaltStack简介
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块构建。通过部署SaltStack,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
环境:
server1:master 节点
server2:minion 被管理的主机
server3:minion被管理的主机
部署服务
真机(一定要关闭selinux,就是因为selinux开着,把我坑惨了)
cd 2019/ --> ls
mv 2019/ /var/www/html/
cd /var/www/html/ --> ls
cd 2019/
createrepo .
ll
虚拟机:
1:配置好yum,因为会有依赖性vim /etc/yum.repos.d/salt.repo
[salt] name=saltstack baseurl=http://172.25.20.250/2019 gpgcheck=0
2:将本地yum文件scp给server2和server3
cd /etc/yum.repos.d
scp salt.repo server2:/etc/yum.repos.d
scp salt.repo server3:/etc/yum.repos.d
yum install -y salt-master
systemctl start salt-master
salt-master默认的配置文件是/etc/salt/masteryum install -y lsof ##查看网络连接数
salt-master端口:4505,4506
4505:为salt的消息发布专用端口
4506:为客户端与服务端通信的端口
【serve2,server3】在Minion节点上安装salt-minion
cd /etc/yum.repos.d/
cat salt.repo
1:安装salt-minion
yum install salt-minion -y
2:编辑文件,并启动
salt-master默认的配置文件是/etc/salt/minion,需要指定Master的地址
vim /etc/salt/minion16 master: 172.25.78.1 ##172.25.78.1成为本机的master,冒号后有一个空格
【server1】
Salt命令
在安装完SaltStackMaster和Minion后,SaltStack提供了许多命令
salt:用来瞄准Minion才能运行即执行模块。用于远程执行的主要工具
1:
salt-key -L ##查看所有的key(包括已授权和未授权)
salt-key -A ###添加所有未授权的key, 一旦授权就会交换公钥,通过授权进行key认证
2:测试连通
匹配拥有的minion:
salt server2 test.ping
salt server3 test.ping
salt server? test.ping
salt server* test.ping
salt '*' test.ping
salt server[23] test.ping
'*'表示所有目标机器 test.ping 只是模块里的一个功能,用来测试连通性
test是python中的模块
4:查看结构:
cd /etc/salt/pki/
tree .
.
├── master
│ ├── master.pem 私钥
│ ├── master.pub 公钥
│ ├── minions
│ │ ├── server2
│ │ └── server3
│ ├── minions_autosign
│ ├── minions_denied
│ ├── minions_pre
│ └── minions_rejected
└── minion
查看是否完整
md5sum server2
md5sum server3
cd …
md5sum master.pub
再到server2和server3查看
cd /etc/salt/pki/minion/ --> ls
md5sum minion_master.pub ##和server1是一样的
【server1】
yum install -y python-setproctitle.x86_64
systemctl restart salt-master
ps ax
YAML
文件以sls结尾,sls采用YAML的格式编写
在YAML中不要使用Tab
有出现下划线要用 " " 括起来
SLS(代表SaLt State文件)是Salt State系统的核心。
SLS描述了系统的目标状态,由格式简单的数据构成。这经常被称作配置管理。
首先,在master上面定义salt的主目录,默认是在/srv/salt/下面。
1:mkdir /srv/salt ##默认路径,以此目录为根
cd /srv/salt/
2:安装一个包,使用pkg
vim apache.slsapache-install: ## 定义安装包的名 pkg.installed: ##使用pkg模块,调用函数 - name: httpd
salt server3 state.sls apache
state.sls ##状态模块
server3查看:
cd /var/cache/salt/minion/
tree .
3:安装多个包pkgs
vim apache.slsapache-install: pkg.installed: - pkgs: - httpd - httpd-tools
salt server3 state.sls apache
server3 查看:
cd files/
cat base/apache.sls
4:也可以用这种方法安装server1:
vim apache.slsnet-tools: pkg.installed
salt server3 state.sls apache
server3查看任务
cat base/apache.sls