saltstack自动化部署——nginx服务

本篇博客承接saltstack安装部署
以部署nginx为例,写一个用源码包部署服务的sls文件。
在这里插入图片描述
创建nginx目录,在目录内创建files目录。
在这里插入图片描述
在files目录中放置安装包。
安装nginx

[root@server1 nginx]# vim install.sls 
nginx-install:
  pkg.installed:
    - pkgs:
      - gcc
      - make
      - pcre-devel
      - zlib-devel

  file.managed:
    - name: /mnt/nginx-1.15.8.tar.gz							##在远程主机放置的目录
    - source: salt://nginx/files/nginx-1.15.8.tar.gz			##存放安装包的路径
  cmd.run:														##安装部署
    - name: cd /mnt && tar zxf nginx-1.15.8.tar.gz && cd nginx-1.15.8 \
    - && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc \
    - && ./configure --prefix=/usr/local/nginx &> /dev/null \
    - && make &> /dev/null && make install &> /dev/null
    - creates: /mnt/nginx-1.15.8

编写sls文件。
在这里插入图片描述
推送,在server2上安装nginx。
在这里插入图片描述
在server2的mnt目录查看,有传过去的安装包化解压的目录。
为了方便启动,我们做一个使用systemctl启动。

[root@server2 system]# pwd
/etc/systemd/system
[root@server2 system]# vim nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s -QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
[root@server2 system]# systemctl start nginx

在这里插入图片描述
在server2启动nginx。
开启nginx

[root@server1 nginx]# vim service.sls
include:
  - nginx.install

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/files/nginx.conf					##主配置文件存放目录

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

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

编写sls文件。
在这里插入图片描述
在files目录中存放nginx.service和主配置文件,修改主配置文件的内容就可以同步到远程主机上。

[root@server1 nginx]# salt server2 state.sls nginx.service

在这里插入图片描述
在这里插入图片描述
推送后在server2查看,nginx服务打开了。
同时推送多个服务

[root@server1 salt]# vim top.sls 
base:
  'server3':
    - httpd.service					##在前一篇博客已经配置	
  'server2':
    - nginx.service

同时推送nginx服务和httpd服务。
添加角色
在server2:

[root@server2 ~]# vim /etc/salt/minion

在这里插入图片描述
添加nginx角色。
在这里插入图片描述
在server1查看。

[root@server3 ~]# cd /etc/salt/
[root@server3 salt]# ls
cloud           cloud.maps.d       master    minion.d   proxy
cloud.conf.d    cloud.profiles.d   master.d  minion_id  proxy.d
cloud.deploy.d  cloud.providers.d  minion    pki        roster
[root@server3 salt]# vim grains

在这里插入图片描述

[root@server3 salt]# systemctl restart salt-minion.service

也可以通过这样的方式添加角色。
在这里插入图片描述
在server1查看,这里是前面设定的角色。

猜你喜欢

转载自blog.csdn.net/qq_41961805/article/details/92652599