深入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