saltstack自动化运维系列①之saltstack服务安装及简单使用

时间:2024-01-14 09:12:44

Saltstack介绍

Salt三种运行方式

1.local本地运行
2.Master/Minion
3.Salt ssh

Salt的三大功能

a.远程执行
b.配置管理(状态管理)
c.云管理:阿里云,aws,openstack都提供了封装好的接口,可以使用salt-cloud进行云主机的管理

Saltstack环境准备
第一台:mini1,既作为salt-master,又作为salt-minion
第二台:node2.chinasoft.com,只作为salt-minion

1.安装salt客户端和服务端

环境:
主机master 192.168.3.12:
yum install -y salt-master salt-minion

启动服务端
/etc/init.d/salt-master start

被控制端192.168.3.19:
yum install -y salt-minion

cat /etc/hosts

192.168.3.12 mini1
192.168.3.16 node2.chinasoft.com

2.修改客户端配置
vim /etc/salt/minion
将master改为master主机地址
master: 192.168.3.12

启动客户端
/etc/init.d/salt-minion start

3.Saltstack的认证
minion首次启动后会在minion端看到minion的私钥和公钥,salt会把公钥发送给master
将客户端同意加入信任列表

# salt-key -a mini1
# salt-key -a node2.chinasoft.com

可以看到/etc/salt/pki/minion目录下有了minion_master.pub文件,这个就是master的公钥

salt-key -a 支持通配符,比如salt-key -a mini* 统一mini开头的主机名加入信任列表

4.Saltstack的远程执行
使用test.ping测试master和minion是否连通
salt:基本命令; *:代表所有minion主机;test:模块; ping:test模块的一个方法,这里的单引号也可以使用双引号

批量执行简单命令:

# salt '*' test.ping
node2.chinasoft.com:
True
mini1:
True

使用cmd.run远程执行命令,cmd是模块,run是cmd模块的一个方法
启动时间

# salt '*' cmd.run 'uptime'
node2.chinasoft.com:
09:52:35 up 3 days, 16:38, 2 users, load average: 0.00, 0.02, 0.00
mini1:
09:52:35 up 1 day, 19:48, 1 user, load average: 0.01, 0.02, 0.01

磁盘大小

# salt '*' cmd.run 'df -Th'
mini1:
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg0-root ext4 25G 1.6G 23G 7% /
tmpfs tmpfs 495M 16K 495M 1% /dev/shm
/dev/sda1 ext4 291M 39M 238M 14% /boot
/dev/mapper/vg0-usr ext4 20G 2.8G 16G 15% /usr
/dev/mapper/vg0-var ext4 9.7G 1004M 8.2G 11% /var
node2.chinasoft.com:
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_node2-root ext4 29G 994M 27G 4% /
tmpfs tmpfs 935M 12K 935M 1% /dev/shm
/dev/sda1 ext4 485M 39M 421M 9% /boot
/dev/mapper/vg_node2-data ext4 29G 239M 28G 1% /data
/dev/mapper/vg_node2-usr ext4 9.7G 2.0G 7.2G 22% /usr
/dev/mapper/vg_node2-web ext4 25G 172M 23G 1% /web

5.配置管理

创建salt的工作目录,启用配置管理:
file_root代表文件目录所在,base指base环境,是必须存在的,这里支持多种(测试开发生产等)环境,后续会提到

简单安装一个apache服务,并添加到自启动
vim /etc/salt/master

file_roots:
base:
- /srv/salt

创建/srv/salt目录
mkdir /srv/salt

# /etc/init.d/salt-master restart

# 编写脚本安装apache服务并开机自启动,注意空格不能用tab键代替

vim /srv/salt/apache.sls

apache-install:
pkg.installed:
- names:
- httpd
- httpd-devel apache-service:
service.running:
- name: httpd
- enable: True
- reload: True

执行脚本:
# salt '*' state.sls apache

关于配置文件apache.sls的解释(注意生产环境的配置文件不要将#后面的内容放进去,否则会报错):
apache-install: #服务ID
pkg.installed: #apache:模块 install:方法
- names: #names列表
- httpd #会使用yum安装httpd
- httpd-devel #会使用yum安装httpd-devel
apache-service: #服务ID
service.running: #service:模块 running:方法
- name: httpd #name:指定http的服务用来service.running
- enable: True #开机启动
- reload: True #支持重载

执行后可以看到已经成功完成apache的安装及启动