在SaltStack中自定义远程运行模块、远程部署Nginx(Nginx包只存在Master中)

配置环境说明:在第一篇环境中,有详细阐述,需要的读者可自行查阅

https://mp.csdn.net/mp_blog/creation/editor/119041072

 目录

 一、自定义远程模块

         1、自主模块运行方法

         2、个人模块编译

        二、远程部署Nginx


一、自定义远程模块

        1、自主模块运行方法

##模块查询官网地址:
http://docs.saltstack.cn/ref/modules/all/index.html

##模块运行:
[root@server1 salt]# salt server2 cmd.run df  ##cmd.run模块,运行shell下的命令
[root@server1 salt]# salt server2 cmd.run hostname

 

图1 运行自带模块

         2、个人模块编译

                个人模块的编写是使用Python语法格式,调用过程是文件名称+内置的函数调用:

##创建模块目录:
[root@server1 salt]# mkdir /srv/salt/_modules

##编写远程执行模块文件:
[root@server1 salt]# vim /srv/salt/_modules/mydisk.py

##配置文件内容(文件内容为python语法格式,相当于写函数,调用时可直接使用):
def df():
    return __salt__['cmd.run']('df -h')

##自己编写的模块进行同步
[root@server1 salt]# salt '*' saltutil.sync_modules

##模块运行
[root@server1 salt]# salt server2 mydisk.df
图 2创建自己的模版文件,编写自己的模块

 

图3 查看模块推送是否成功

 

图4 使用个人模块,查看结果

 

二、远程部署Nginx

Nginx安装包的下载:http://nginx.org/download/nginx-1.18.0.tar.gz

         环境说明,这里的Nginx配置是指,我们在Master端的安装包,需要部署在Minion端,其中包括安装包的部署,以及编译,安装等操作。

##创建Nginx文件的配置目录
[root@server1 nginx]#  mkdir -p /srv/salt/nginx/files

##将Nginx的软件包放在创建的配置目录下

##编写Nginx的安装部署文件:/srv/salt/nginx/install.sls

##配置文件内容
  1nginx:
  2   pkg.installed:    ##安装依赖性文件
  3     - pkgs:
  4       - gcc
  5       - pcre-devel
  6       - openssl-devel
  7   file.managed:     ##进行软件包文件传输
  8     - source: salt://nginx/files/nginx-1.18.0.tar.gz
  9     - name: /mnt/nginx-1.18.0.tar.gz
 10   cmd.run:          ##进行软件包文件的编译,并创建相关的文件
 11     - name: cd /mnt && tar zxf nginx-1.18.0.tar.gz && cd nginx-1.18.0 && ./c    onfigure  --prefix=/usr/local/nginx --with-http_ssl_module &> /dev/null && make &> /dev/null && make install &> /dev/null ## 进入目录文件->安装报解压->进入安装包环境查看->指定文件目录->安装依赖性模块->文件编译->软件安装
 12     - crestes: /usr/local/nginx    ##检测文件是否存在,防止二次编译

##编写服务启动脚本:/srv/salt/nginx/start.sls

##启动脚本文件内容:
  1 #include:                    ##是否包含软件编译
  2 #  -nginx.install
  3 /usr/local/nginx/conf/nginx.conf:    ##配置Nginx的配置文件目录
  4   file.managed:
  5     - source: salt://nginx/files/nginx.conf
  6 
  7 nginx-service:
  8   user.present:            ##创建用户
  9     - name: nginx
 10     - shell: /sbin/nologin
 11     - home: /usr/local/nginx
 12     - createhome: false
 13   file.managed:            ##进行文件传送
 14     - source: salt://nginx/files/nginx.service    ##nginx.service文件需要官方下载
 15     - name: /usr/lib/systemd/system/nginx.service
 16   service.running:        ##服务运行
 17     - name: nginx
 18     - enable: true
 19     - reload: true
 20     - watch:              ##文件监控,查看配置文件是否更改
 21       - file: /usr/local/nginx/conf/nginx.conf

##nginx.service文件连接:https://www.nginx.com/resources/wiki/start/topics/examples/systemd/

##文件内容更改
  1 [Unit]
  2 Description=The NGINX HTTP and reverse proxy server
  3 After=syslog.target network-online.target remote-fs.target nss-lookup.target
  4 
  5 [Service]
  6 Type=forking
  7 PIDFile=/usr/local/nginx/logs/nginx.pid        //文件路径
  8 ExecStartPre=/usr/local/nginx/sbin/nginx -t    //启动检测
  9 ExecStart=/usr/local/nginx/sbin/nginx          //服务启动
 10 ExecReload=/usr/local/nginx/sbin/nginx -s reload    //服务重启
 11 ExecStop=/bin/kill -s QUIT $MAINPID
 12 PrivateTmp=true
 13 
 14 [Install]
 15 WantedBy=multi-user.target

##服务推送
[root@server1 nginx]# salt server3 state.sls nginx.install    ##先推送软件包
[root@server1 nginx]# salt server3 state.sls nginx.start      ##推送启动服务

 

图5 文件创建目录
图6 软件包推及安装

 

图7 服务启动运行

 

图8 结果查看

         本文主要介绍自主模块的编译以及自主软件包该如何部署,相对本身所固有的,这种方式更有实用价值,希望能帮助到相应的读者。

          如果在上述配置过程中出现问题的话,欢迎随时交流。共同学习,共同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值