配置环境说明:在第一篇环境中,有详细阐述,需要的读者可自行查阅
目录
一、自定义远程模块
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

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



二、远程部署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 ##推送启动服务




本文主要介绍自主模块的编译以及自主软件包该如何部署,相对本身所固有的,这种方式更有实用价值,希望能帮助到相应的读者。
如果在上述配置过程中出现问题的话,欢迎随时交流。共同学习,共同进步。
版权声明:本文为qq_41056224原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。