Saltstack配置管理

上一篇 / 下一篇  2017-06-02 14:52:47 / 个人分类:配置管理

配置管理也叫状态管理
严格意思上讲状态是不可回滚的

Salt State SLS描述文件  YAML
apache-service:      #ID声明
service.running:     #State声明 状态声明
- name: httpd    #选项声明
- enable: True
怎么部署一个LAMP架构
1,安装软件包           pkg
2,修改配置文件   file
3,启动服务     service
pkg.installed  安装
pkg.latest    最新版本
pkg.remove   移除
pkg.purge   同时删除配置文件
pkgs      同时安装多个包
例如
php.packages:
pkg.installed:
- fromrepo: wheezy-php55
- pkgs:
- php5-fpm
- php5-cli
- php5-curl
PS:一个ID声明下面,状态模块不能重复使用。(Python字典里面的key不能重复)
mkdir /srv/salt/lamp
mkdir /srv/salt/lamp/files
拷贝配置文件到这个目录下
cp /etc/my.cnf ./
cp /etc/httpd/conf/httpd.conf ./
/files]# cp /etc/php.ini ./
vim /srv/salt/lamp/lamp.sls
lamp-pkg:
pkg.installed:
- pkgs:
- httpd
- php
- mariadb
- mariadb-server
- php-mysql
- php-cli
- php-mbstring
apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://lamp/files/httpd.conf
- user: root
- group: root
- mode: 644
php-config:
file.managed:
- name: /etc/php.ini
- source: salt://lamp/files/php.ini
- user: root
- group: root
- mode: 644
mysql-config:
file.managed:
- name: /etc/my.cnf
- source: salt://lamp/files/my.cnf
- user: root
- group: root
- mode: 644
apache-service:
service.running:
- name: httpd
- enable: True
- reload: True
mysql-service:
service.running:
- name: mariadb
- enable: True
- reload: True

执行安装
salt '10-8-86-172' state.sls lamp.lamp
PS:salt://表示当前环境的根目录,即/srv/salt目录
可以在minion端查看debug查看执行过程及错误
tail -f /var/log/salt/minion
状态间关系
1,我依赖谁
依赖这个安装包和这个配置文件
2,我被谁依赖
和依赖是一样的意思记住一个就行
3,我监控谁
如果apache-config状态发生变化则reload,如果reload不是True则是restart
4,我被谁监控
同理watch_in写在apache-config ,也是两个记住一个即可
5,我引用谁
include:
- lamp.pkg
类似于配置文件的包含,把不同的模块分开来好管理
6,我扩展谁
Jinja2
参考网站
http://docs.jinkan.org/docs/jinja2/
两种分隔符:{% ... %}和 {{ ... }}
三步走
1,告诉File模块 ,你需要使用jinja
- template: jinja
2,要列出变量参数列表
- defaults:
PORT: 88
3,模板引用
修改配置文件 Listen {{ PORT }}
修改lamp.sls
修改httpd.conf
再次执行
模板里面支持 salt grains pillar进行赋值

使用pillar
先获取到
修改httpd配置文件
jinjia模板
修改lamp.sls
修改httpd配置文件
PS:也可以写在sls里面的变量列表中
例如

TAG:

 

评分:0

我来说两句

Open Toolbar