saltstack自动化运维系列①之saltstack服务安装及简单使用
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的安装及启动