SaltStack之配置管理
1. YAML语言
YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。
它类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。
YAML语言的格式如下:
house:
family:
name: Doe
parents:
- John
- Jane
children:
- Paul
- Mark
- Simone
address:
number: 34
street: Main Street
city: Nowheretown
zipcode: 12345
YAML的基本规则:
- 使用缩进来表示层级关系,每层2个空格,禁止使用TAB键
- 当冒号不是处于最后时,冒号后面必须有一个空格
- 用 - 表示列表,- 的后面必须有一个空格
- 用 # 表示注释
YAML配置文件要放到SaltStack让我们放的位置,可以在SaltStack的 Master 配置文件中查找file_roots即可看到。
[root@master ~]# vim /etc/salt/master
...此处省略N行
file_roots:
base:
- /srv/salt/
dev:
- /srv/salt/dev
prod:
- /srv/salt/prod
...此处省略N行
[root@master ~]# mkdir -p /srv/salt/{base,test,dev,prod}
[root@master ~]# tree /srv/
/srv/
└── salt
├── dev
└── prod
4 directories, 0 files
[root@master ~]# systemctl restart salt-master
2. 用SaltStack配置一个apache实例
2.1 在Master上部署sls配置文件并执行
[root@master ~]# cd /srv/salt
[root@master salt]# ls
[root@master salt]# mkdir -p web/apache
[root@master salt]# tree web
web
└── apache
1 directory, 0 files
[root@master salt]# cd web/apache/
[root@master apache]# touch apache.sls //生成一个状态描述文件
[root@master apache]# ll
总用量 0
-rw-r--r--. 1 root root 0 2月 19 19:25 apache.sls
vim apache.sls
apache-install:
pkg.installed:
- name: httpd
apache-service:
service.running:
- name: httpd
- enable: True
// YAML 配置文件中顶格写的被称作ID,必须全局唯一,不能重复
// SaltStack 读 YAML 配置文件时是从上往下读,所以要把先执行的写在前面\
[root@master ~]# ls /srv/salt/base/web/apache/
apache.sls
//执行状态描述文件
[root@master ~]# salt '4.xx.xx.155' state.sls web.apache.apache saltenv=base
4.xx.xx.155:
----------
ID: apache-install
Function: pkg.installed
Name: httpd
Result: True
Comment: The following packages were installed/updated: httpd
Started: 20:01:54.224738
Duration: 46294.423 ms
Changes:
----------
apr:
----------
new:
1.4.8-3.el7_4.1
old:
apr-util:
----------
new:
1.5.2-6.el7
old:
httpd:
----------
new:
2.4.6-88.el7.centos
old:
httpd-tools:
----------
new:
2.4.6-88.el7.centos
old:
mailcap:
----------
new:
2.1.41-2.el7
old:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service httpd has been enabled, and is running
Started: 20:02:42.295530
Duration: 6926.009 ms
Changes:
----------
httpd:
True
Summary for 192.168.69.202
------------
Succeeded: 2 (changed=2)
Failed: 0
------------
Total states run: 2
Total run time: 53.220 s