salt 类似于puppet都属于c/s结构

1. 安装salt

1.1 安装epel

http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

1.2 安装salt

master:

    yum -y install salt-master

minion:

    yum -y install salt-minion

1.3 开机自动启动

master:

    chkconfig salt-master on

minion:

    chkconfig salt-minion on

1.4 启动:

master:

    service salt-master start

minion:

    service salt-minion start

2. 配置salt

2.1 配置文件路径为:

    /etc/salt/master or /etc/salt/minion

缓存路径为:

    /var/cache/salt

日志路径为:

    /var/log/salt

2.2 master configuration

修改interface地址为本机地址

    - #interface: 0.0.0.0

    + interface: 10.0.0.1

修改完重启

    service salt-master restart

2.3 minion configuration

修改master选项以便能够找到master

    - #master: salt

    + master: 10.0.0.1

修改完重启

    service salt-minion restart

2.4 key management

查看key:

[root@master ~]# salt-key -L

Unaccepted Keys:

alpha

bravo

charlie

delta

Accepted Keys:

accept key

[root@master ~]# salt-key -A

[root@master ~]# salt-key -L

Unaccepted Keys:

Accepted Keys:

alpha

bravo

charlie

delta

2.5 sending command

[root@master ~]# salt alpha test.ping

       alpha:

            True

[root@master ~]# salt '*' test.ping

                        alpha:

            True    

                        bravo:

            True

        charlie:

            True

                        delta:

            True

    salt '*' cmd.run "service apache2 restart"

    salt 'alpha' cmd.run "date"

3. 配置管理

3.1 启动配置管理

取消关于file_roots的注释

vim +307 /etc/salt/master

file_roots:

    base:

       - /srv/salt

这样就告诉salt配置文件在哪里,默认安装没有该目录,需手动创建

3.2 创建top文件

基础配置文件也叫top文件,在/srv/salt目录下,top.sls内容如下:

    base:

        '*':                       

        - servers

通配符'*'的目标是所有机器,’- servers'可以为任意值,第二行前有2个空格,第三行前有4个空格    

3.3 创建特定服务的配置文件

保存top.sls后,在salt目录下创建servers.sls文件,这个文件包含特定的配置,

httpd:

    pkg:

- installed

3.4 特定包得配置文件

在servers.sls添加如下行

   /etc/httpd/conf/httpd.conf:

        file:

    - managed

    - source: salt://servers/httpd.conf

    - require:

    - pkg: httpd

        保存servers.sls后,在/srv/salt目录下创建servers目录,用来存储httpd.conf

3.5 目录结构

   /srv/salt

    top.sls

    servers.sls

    /servers

    httpd.conf

3.6 命令触发

    salt '*' state.highstate

片刻后,就会看到所有服务器都已经安装httpd服务了