深入salt配置
环境: base, dev(开发环境), test(测试环境), prod(生产环境)
vim  /etc/salt/master
file_roots:
  base:
    - /srv/salt/
  dev:
    - /srv/salt/dev
  test:
    - /srv/salt/test
  prod:
    - /srv/salt/prod

mkdir  /srv/salt/{dev,test,prod}

案例一:初始化配置
vim /srv/salt/top.sls  //内容如下
base:
  '*':
    - init.dns
如果写成带一个点的形式,那么点前面是目录名字,后面是sls文件名字。
mkdir  init 
cd init
vim dns.sls //内容
/etc/resolve.conf:
  file.managed:
    - source: salt://init/files/resolv.conf  //说明 salt://为当前环境(base)的主目录(/srv/salt/)下。
    - user: root
    - group: root
    - mode: 644
mkdir /srv/salt/init/files   //在此目录下放resolv.conf作为模板文件

运行: salt '*' state.highstate

案例二: 自动化部署lamp环境

三个模块:
pkg 安装软件包
file  管理配置文件
service   服务管理

思路: lamp需要安装的软件包有  httpd, php, mysql, mysql-server, php-mysql, php-pdo
预设:我们把这个lamp的安装项目放到dev环境下

cd  /srv/salt/dev/
mkdir /srv/salt/dev/files/

vim lamp.sls  //加入如下内容
lamp-pkg-install:
  pkg.installed:
    - names:
      - php
      - mysql
      - php-cli
      - php-common
      - php-mysql
      - mysql-server
      - php-pdo

apache-service:
  pkg.installed:
    - name: httpd
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - require:
      - pkg: apache-service
  service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
      - file: apache-service
    
mysql-service:
  file.managed:
    - name: /etc/my.cnf
    - source: salt://files/my.cnf
    - user: root
    - group: root
    - mode: 644
  service.running:
    - name: mysqld
    - enable: True

vim  /srv/salt/top.sls   //加入如下内容
dev:
  'client.aming.com':
    - lamp

执行: salt '*' state.highstate

salt编译安装nginx  http://blog.cunss.com/?p=272