后端线上服务(注意:后端另外开启另外两台虚拟机)
完成前端高可用之后,我们就可以去完成线上服务了。线上服务包括nginx、php、memache、mysql等的安装及配置。
一、功能模块之nginx安装
创建nginx安装目录:
[root@salt-master ~]# mkdir /srv/salt/prod/nginx/
[root@salt-master ~]# mkdir /srv/salt/prod/nginx/files
将nginx安装包和脚本拷贝到files目录下
[root@salt-master ~]# ls /srv/salt/prod/nginx/files
解决安装nginx依赖关系:
[root@salt-master ~]# vi /srv/salt/prod/pkg/pkg-nginx.sls
pkg-nginx:
pkg.installed:
- names:
- openssl-devel
- pcre-devel
- zlib-devel
编写nginx安装sls文件:
[root@salt-master ~]# vi /srv/salt/prod/nginx/install.sls
include:
- pkg.pkg-nginx
/usr/local/src:
file.directory:
- user: root
- group: root
- mode: 755
nginx-install:
file.managed:
- name: /usr/local/src/nginx-1.13.8.tar.gz
- source: salt://nginx/files/nginx-1.13.8.tar.gz
- user: root
- group: root
- mode: 755
cmd.run:
- name: cd /usr/local/src/ && tar -zxf nginx-1.13.8.tar.gz && cd nginx-1.13.8 && ./configure --prefix=/usr/local/nginx && make && make install
- unless: test -d /usr/local/nginx
- require:
- pkg: pkg-nginx
- file: nginx-install
nginx-init:
file.managed:
- name: /etc/init.d/nginx
- source: salt://nginx/files/nginx.init
- user: root
- group: root
- mode: 755
cmd.run:
- name: chkconfig --add nginx
- unless: chkconfig --list | grep nginx
- require:
- file: nginx-init
/etc/nginx:
file.directory:
- user: root
- group: root
- mode: 755
执行安装:
[root@salt-master ~]# salt '*' state.sls nginx.install env=prod
业务模块之nginx配置管理
创建app目录用户nginx及php配置文件管理:
[root@salt-master ~]# mkdir /srv/salt/prod/app/
[root@salt-master ~]# mkdir /srv/salt/prod/app/files/
[root@salt-master ~]# mkdir /srv/salt/prod/app/files/nginx/ #用于存放nginx配置文件
[root@salt-master ~]# mkdir /srv/salt/prod/app/files/php/ #用于存放php配置文件
将需要的文件拷贝到files/nginx目录下:
[root@salt-master ~]# ls /srv/salt/prod/app/files/nginx/
fatcgi_params mime.types nginx.conf
[root@salt-master ~]# ls /srv/salt/prod/app/
files nginx.sls php.sls
[root@salt-master ~]# vi /srv/salt/prod/app/nginx.sls
include:
- nginx.install
{% for s in ["fastcgi_params","mime.types","nginx.conf"] %}
nginx-{{s}}:
file.managed:
- name: /etc/nginx/{{s}}
- source: salt://app/files/nginx/{{s}}
- user: root
- group: root
- template: jinja
- mode: 644
service.running:
- name: nginx
- enable: True
- watch:
- file: nginx-nginx.conf
{% endfor %}
注:引用jinja模版,将fastcgi_params、mime.types、nginx.conf三个相关文件下发到节点的同一目录下。
执行文件:
[root@salt-master ~]# salt '*' state.sls app.nginx env=prod
完成前端高可用之后,我们就可以去完成线上服务了。线上服务包括nginx、php、memache、mysql等的安装及配置。
一、功能模块之nginx安装
创建nginx安装目录:
[root@salt-master ~]# mkdir /srv/salt/prod/nginx/
[root@salt-master ~]# mkdir /srv/salt/prod/nginx/files
将nginx安装包和脚本拷贝到files目录下
[root@salt-master ~]# ls /srv/salt/prod/nginx/files
解决安装nginx依赖关系:
[root@salt-master ~]# vi /srv/salt/prod/pkg/pkg-nginx.sls
pkg-nginx:
pkg.installed:
- names:
- openssl-devel
- pcre-devel
- zlib-devel
编写nginx安装sls文件:
[root@salt-master ~]# vi /srv/salt/prod/nginx/install.sls
include:
- pkg.pkg-nginx
/usr/local/src:
file.directory:
- user: root
- group: root
- mode: 755
nginx-install:
file.managed:
- name: /usr/local/src/nginx-1.13.8.tar.gz
- source: salt://nginx/files/nginx-1.13.8.tar.gz
- user: root
- group: root
- mode: 755
cmd.run:
- name: cd /usr/local/src/ && tar -zxf nginx-1.13.8.tar.gz && cd nginx-1.13.8 && ./configure --prefix=/usr/local/nginx && make && make install
- unless: test -d /usr/local/nginx
- require:
- pkg: pkg-nginx
- file: nginx-install
nginx-init:
file.managed:
- name: /etc/init.d/nginx
- source: salt://nginx/files/nginx.init
- user: root
- group: root
- mode: 755
cmd.run:
- name: chkconfig --add nginx
- unless: chkconfig --list | grep nginx
- require:
- file: nginx-init
/etc/nginx:
file.directory:
- user: root
- group: root
- mode: 755
执行安装:
[root@salt-master ~]# salt '*' state.sls nginx.install env=prod
业务模块之nginx配置管理
创建app目录用户nginx及php配置文件管理:
[root@salt-master ~]# mkdir /srv/salt/prod/app/
[root@salt-master ~]# mkdir /srv/salt/prod/app/files/
[root@salt-master ~]# mkdir /srv/salt/prod/app/files/nginx/ #用于存放nginx配置文件
[root@salt-master ~]# mkdir /srv/salt/prod/app/files/php/ #用于存放php配置文件
将需要的文件拷贝到files/nginx目录下:
[root@salt-master ~]# ls /srv/salt/prod/app/files/nginx/
fatcgi_params mime.types nginx.conf
[root@salt-master ~]# ls /srv/salt/prod/app/
files nginx.sls php.sls
[root@salt-master ~]# vi /srv/salt/prod/app/nginx.sls
include:
- nginx.install
{% for s in ["fastcgi_params","mime.types","nginx.conf"] %}
nginx-{{s}}:
file.managed:
- name: /etc/nginx/{{s}}
- source: salt://app/files/nginx/{{s}}
- user: root
- group: root
- template: jinja
- mode: 644
service.running:
- name: nginx
- enable: True
- watch:
- file: nginx-nginx.conf
{% endfor %}
注:引用jinja模版,将fastcgi_params、mime.types、nginx.conf三个相关文件下发到节点的同一目录下。
执行文件:
[root@salt-master ~]# salt '*' state.sls app.nginx env=prod