ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Saltstack推送httpd服务 与 nginx服务

2019-08-15 21:36:56  阅读:318  来源: 互联网

标签:httpd service root server1 sls nginx Saltstack salt


环境

server1(salt-master) 172.25.60.1
server2 (salt-minion) 172.25.60.2
server3 (salt-minion) 172.25.60.3

实验准备:
安装python-setproctitle.x86_64
重启服务:systemctl restart salt-master.service
在这里插入图片描述

推送apache

1.修改配置文件

[root@server1 salt]# vim /etc/salt/master  ##注释647-650行
[root@server1 salt]# systemctl restart salt-master.service 

在这里插入图片描述
2.server1创建需要的目录与文件

[root@server1 salt]# mkdir /srv/salt
[root@server1 salt]# cd /srv/salt
[root@server1 salt]# mkdir apache
[root@server1 salt]# cd apache/
[root@server1 apache]# vim install.sls

install-apache:                      ##安装服务
  pkg.installed:
    - pkgs:
      - httpd

service-apache:                      ##开启服务
  service.running:
    - name: httpd


简单版install.sls v1.0 运行图省略 同v2.0
在这里插入图片描述
简单版install.sls v2.0
在这里插入图片描述
3.推送服务

[root@server1 apache]# salt server2 state.sls apache.install

在这里插入图片描述
4.检查salt-minion端服务开启情况
在这里插入图片描述
在这里插入图片描述推送Nginx服务
1.创建nginx及所需目录

[root@server1 salt]# mkdir nginx
[root@server1 salt]# cd nginx/
[root@server1 nginx]# mkdir files
[root@server1 nginx]# cd ..
[root@server1 salt]# mkdir pkgs

2.在pkgs目录下编写install.sls

[root@server1 salt]# mkdir pkgs
[root@server1 salt]# cd pkgs/
[root@server1 pkgs]# vim install.sls
[root@server1 pkgs]# pwd
/srv/salt/pkgs
[root@server1 pkgs]# cat install.sls 
nginx-make:
  pkg.installed:
    - pkgs:
      - gcc
      - make
      - zlib-devel
      - pcre-devel

在这里插入图片描述

3.拷贝软件包与文件模板到files目录下,并编写启动脚本 nginx.service

真机:
[root@foundation60 saltstack1_8.13_item8]# scp nginx-1.15.8.tar.gz server1:/srv/salt/nginx/files
root@172.25.60.1's password: 
nginx-1.15.8.tar.gz                  100% 1004KB   1.0MB/s   00:00 

##172.25.60.21为安装过nginx的虚拟机:
root@server1 files]# scp root@172.25.60.21:/usr/local/nginx-1.15.8/conf/nginx.conf .

##server1:
[root@server1 files]# ls
nginx-1.15.8.tar.gz  nginx.conf
[root@server1 files]# vim nginx.service
[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

在这里插入图片描述
4.编写nginx目录写的intsall.sls文件

[root@server1 nginx]# vim install.sls
[root@server1 nginx]# cat install.sls 
{% set nginx_version = '1.15.8'%}    ##设置版本的变量
include:
  - pkgs.install

install-nginx:
  file.managed:
    - name: /mnt/nginx-{{ nginx_version }}.tar.gz
    - source: salt://nginx/files/nginx-{{ nginx_version }}.tar.gz

  cmd.run:
    - name: cd /mnt && tar zxf nginx-{{ nginx_version }}.tar.gz && cd nginx-{{ nginx_version }} && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx && make && make install
    - creates: /usr/local/nginx

在这里插入图片描述5.编写nginx目录下的服务启动文件service.sls

[root@server1 nginx]# vim service.sls 
[root@server1 nginx]# pwd
/srv/salt/nginx
[root@server1 nginx]# cat service.sls 
include:
  - nginx.install

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/files/nginx.conf

service-nginx:
  file.managed:
    - name: /usr/lib/systemd/system/nginx.service
    - source: salt://nginx/files/nginx.service

  service.running:
    - name: nginx
    - reload: True
    - watch:
      - file: /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
服务开启方式1:
启动server3的nginx服务
salt server3 state.sls nginx.service

在这里插入图片描述
在这里插入图片描述
服务开启方式2:
使top.sls文件进行多任务的推送

[root@server1 salt]# ls
apache  nginx  pkgs  top.sls  zabbix
[root@server1 salt]# cat top.sls 
base:
  'server2':
    - apache.install
  'server3':
    - nginx.service

在这里插入图片描述
启动方式:
salt ‘*’ state.highstate
在这里插入图片描述在这里插入图片描述

标签:httpd,service,root,server1,sls,nginx,Saltstack,salt
来源: https://blog.csdn.net/vanvan_/article/details/99623170

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有