zhaolu 发表于 2018-1-3 21:18:52

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>  
/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>  
/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  

->  

  执行脚本:
  # 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#开机启动

  ->  执行后可以看到已经成功完成apache的安装及启动
页: [1]
查看完整版本: saltstack自动化运维系列①之saltstack服务安装及简单使用