本篇博客承接上篇saltstack安装部署
部署好服务之后就可以进行服务的自动化部署了,下面以自动化部署为例,介绍一下saltstack自动化部署的文件编写。
编写一个sls文件
[root@server1 ~]# mkdir /srv/salt
[root@server1 ~]# cd /srv/salt/ ##创建主目录
[root@server1 salt]# mkdir httpd ##创建服务主目录
[root@server1 salt]# cd httpd/
[root@server1 httpd]# ls
[root@server1 httpd]# vim install.sls ##编写自动化部署脚本
httpd: ##服务名称
pkg.installed ##安装
写一个简单的安装sls文件,测试一下。
[root@server1 httpd]# salt server2 state.sls httpd.install ##因为创建的目录是
推送,在server2安装httpd,这里检测到我之前已经安装了。
[root@server1 httpd]# vim install.sls
这里是安装多个软件的写法,编写时每一级的间隔是两个空格。
[root@server1 httpd]# salt server2 state.sls httpd.install
推送。
[root@server1 httpd]# vim install.sls
httpd-install:
pkg.installed:
- pkgs:
- httpd
- php
- httpd-tools
service.running: ##开启httpd服务
- name: httpd
- enable: true
- reload: true
[root@server1 httpd]# salt server2 state.sls httpd.install
推送成功。
在服务的主目录创建一个files目录,用来存放httpd服务的主配置文件。
[root@server1 httpd]# vim install.sls
httpd-install:
pkg.installed:
- pkgs:
- httpd
- php
- httpd-tools
service.running:
- name: httpd
- enable: true
- reload: true
- watch:
- file: /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://httpd/files/httpd.conf ##存放主配置文件的目录。
- user: root
- group: root
- mode: 644
[root@server1 httpd]# vim files/httpd.conf
同样修改端口。
[root@server1 httpd]# salt server2 state.sls httpd.install
推送。
在远程主机查看,端口修改成功。
和ansible类似,我们在编写sls文件时可以将每个功能分开写,如,将上面的install.sls文件做一下修改:
[root@server1 httpd]# vim install.sls
httpd-install:
pkg.installed:
- pkgs:
- httpd
- php
- httpd-tools
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://httpd/files/httpd.conf
- user: root
- group: root
- mode: 644
将启动服务的部分删除,在写入一个新的文件中。
[root@server1 httpd]# vim service.sls
include: ## 包含
- httpd.install
httpd-service:
service.running:
- name: httpd
- enable: true
- reload: true
- watch:
- file: httpd-install
写启动服务部分,要包括前面写的install.sls文件。
[root@server1 httpd]# salt server2 state.sls httpd.service
推送service.sls文件。