前言--需要思考的几个问题:

    saltstack是什么?

    我们可以用saltstack做什么?

    saltstack未来的发展趋势?



带着问题开始驰骋


1、这个由Python开发的自动化运维工具,可以写强大的运维平台哟!


2、接下来我们看看安装与配置

master端安装

yum -y install salt-master       //安装就是这么简单

minion端安装

yum -y install salt-minion


master端配置

vi /etc/salt/master

interface: 192.168.24.66

auto_accept: True

file_roots:               //定义salt工作根目录

  base:

    - /srv/salt

minion端配置

vi /etc/salt/minion

master: 192.168.24.66

id: 192.168.24.68


3、是的安装配置就是这么简单,下面启动服务,让他跑起来

master端

/etc/init.d/salt-master start

minion端

/etc/init.d/salt-minion start


4、查看keys状态,并添加minion keys

[root@localhost ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
192.168.24.67
192.168.24.68
Rejected Keys:
[root@localhost ~]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
192.168.24.67
192.168.24.68
Proceed? [n/Y] Y
Key for minion 192.168.24.67 accepted.
Key for minion 192.168.24.68 accepted.


再次查看,已经在列表中了

[root@localhost ~]# salt-key -L
Accepted Keys:
192.168.24.67
192.168.24.68
Denied Keys:
Unaccepted Keys:
Rejected Keys:


5、执行test.ping测试是否成功

此处踩过的坑

salt-key -A 这个添加后,在master端/etc/salt/pki/master/minions下会生成minion的公钥文件

同时minion端/etc/salt/pki/minion下也会生成master的公钥文件minion_master.pub,其实这就是

一个互信的过程。此处有坑

[root@localhost minion]# salt '*' test.ping
192.168.24.67:
    Minion did not return. [No response]
192.168.24.68:
    Minion did not return. [No response]


需要将在master端执行salt-key -D,去除一下keys。将minion端/etc/salt/pki/minion 此目录下文件清理掉。然后启动minion端服务,不需要执行其他操作,如下就成功。---此处是经验(删除minion端文件/etc/salt/pki/minion/minion_master.pub,再启动minion端服务)

[root@localhost minions]# salt '*' test.ping

192.168.24.67:

    True

192.168.24.68:

    True


6、其实此时我们已经跑起来了,可以去做我们想做的事情了

你的最爱(是的,使用模块cmd.run你想在客户端执行啥命令都行)

[root@localhost ~]# salt '*'  cmd.run 'df -h'

192.168.24.67:

    Filesystem      Size  Used Avail Use% Mounted on

    /dev/sda3        93G  4.5G   84G   6% /

    tmpfs           1.9G   12K  1.9G   1% /dev/shm

    /dev/sda1       190M  146M   31M  83% /boot

192.168.24.68:

    Filesystem      Size  Used Avail Use% Mounted on

    /dev/sda3        93G  4.5G   84G   6% /

    tmpfs           1.9G   12K  1.9G   1% /dev/shm

    /dev/sda1       190M  146M   31M  83% /boot


7、使用模块cmd.run 在生产环境一些敏感命令不建议使用

salt ‘*’  cmd.run ‘rm -rf /’    //分分钟,玩死所有服务器


------------------------------------------------------------

ok,前面是初步认识,接下来我们做点儿有意义的事情


8、写几个状态文件,让我们探索一下他的趣事

[root@localhost salt]# cd /srv/salt/

[root@localhost salt]# vim zabbix.sls

zabbix_agent:
  pkg.installed:                //pkg是模块,installed是该模块的一个方法;做yum安装
    - name: zabbix22-agent
  file.managed:                 //文件拷贝
    - name: /etc/zabbix_agentd.conf
    - source: salt://zabbix_agentd.conf
    - user: root
    - group: root
    - mode: 644
  service.running:              //服务管理
    - name: zabbix_agentd
    - enable: True              //启动服务
    - watch:
      - file: zabbix_agent


9、运行文件

[root@localhost salt]# salt '*' state.sls zabbix


安装成功

[root@localhost minion]# rpm -qa | grep zabbix

zabbix22-agent-2.2.11-1.el6.x86_64

zabbix22-2.2.11-1.el6.x86_64

[root@localhost minion]# ll /etc/zabbix_agentd.conf 

-rw-r--r--. 1 root root 5978 Jul  3 13:09 /etc/zabbix_agentd.conf


10、初接触(学习几个参数)

salt -E 'web1-(prod|devel)' test.ping          //匹配正则表达式
salt -L 'web1,web2,web3' test.ping             //列表匹配
salt -G 'os:CentOS' test.ping                  //grains
salt -G 'cpuarch:x86_64' grains.item num_cpus


11、此刻你也许已经对他有好感了,开始想了解更多关于他的事,先戛然而止______


-----------未完待续------------