saltstack执行模块

2024-05-16 02:38
文章标签 模块 执行 saltstack

本文主要是介绍saltstack执行模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(1)master中编写自定义模块

[root@server1 ~]# mkdir /srv/salt/_modules -p
[root@server1 ~]# cd /srv/salt/_modules/
[root@server1 _modules]# vim my_disk.py
#!/use/bin/env python
def df():return __salt__['cmd.run']('df -h')

刷新salt模块库

[root@server1 _modules]# salt '*' saltutil.sync_modules
server2:- modules.my_disk
server1:- modules.my_disk
server4:- modules.my_disk
server3:- modules.my_disk

推送自己的模块

[root@server1 _modules]# salt '*' my_disk.df
server3:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  1.1G   17G   6% /tmpfs                         246M   16K  246M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot
server4:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  1.1G   17G   6% /tmpfs                         372M   16K  372M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot
server2:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  990M   17G   6% /tmpfs                         246M   96K  246M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot
server1:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  1.1G   17G   7% /tmpfs                         499M   76K  499M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot

函数存放位置

[root@server4 ~]# cd /var/cache/salt
[root@server4 salt]# tree
.
`-- minion|-- accumulator|-- extmods|   |-- grains|   |   |-- my_grains.py|   |   `-- my_grains.pyc|   `-- modules            #外部函数位置|       |-- my_disk.py|       `-- my_disk.pyc|-- files|   `-- base|       |-- _grains|       |   `-- my_grains.py|       |-- haproxy|       |   |-- files|       |   |   `-- haproxy.cfg|       |   `-- install.sls|       |-- keepalived|       |   |-- files|       |   |   |-- keepalived|       |   |   |-- keepalived-2.0.6.tar.gz|       |   |   `-- keepalived.conf|       |   |-- install.sls|       |   `-- service.sls|       |-- _modules|       |   `-- my_disk.py|       `-- top.sls|-- highstate.cache.p|-- module_refresh|-- pkg_refresh|-- proc`-- sls.p14 directories, 18 files

(2)salt中的常用模块ssh

<1>server4关闭salt-minion

<2>在server1上安装salt-ssh

 [root@server1 ~]# yum install -y salt-ssh

<3>在server上编辑ssh的配置文件

  [root@server1 ~]# vim /etc/salt/rosterserver3:host: 172.25.1.4       # 想要连接的主机user: root             # 该主机的超级用户passwd: redhat         # 该超级用户的密码

<4> 在server1中连通server4

salt-ssh 'server4' test.ping -i

<5>server1中执行命令,不启动minion

[root@server1 salt]# salt-ssh 'server4' cmd.run 'df -h'
server4:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   14G  1.1G   12G   9% /tmpfs                         499M   16K  499M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot

(3) salt-syndic功能

<1> 选server4作为top master,关闭server4的minion,server1中去掉server4的minion

 [root@server4 ~]# /etc/init.d/salt-minion stop[root@server4 ~]# chkconfig salt-minion off

<2> server4中安装salt-master

   [root@server4 ~]# yum install salt-master

<3>修改sevrer4中master配置文件

vim /etc/salt/master
857 order_masters: True    # 打开允许syndic功能

<4>server1中安装salt-syndic

[root@server1 ~]# yum install salt-syndic -y
[root@server1 ~]# vim /etc/salt/master
861 syndic_master: 172.25.1.4    # 设置top master为server4
[root@server1 ~]# /etc/init.d/salt-master restart
Stopping salt-master daemon:                               [确定]
Starting salt-master daemon:                               [确定]
[root@server1 ~]# /etc/init.d/salt-syndic start   #需要启动syndic否则无法交换公钥
Starting salt-syndic daemon:                               [确定]

<5> server4中发现server1

   salt-key -A[root@server4 ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
server1
Rejected Keys:
[root@server4 ~]# salt-key -A 
The following keys are going to be accepted:
Unaccepted Keys:
server1
Proceed? [n/Y] Y
Key for minion server1 accepted.

<6>sevrer4上执行推送,推送到了server1的各个minion端

[root@server4 ~]# salt '*' test.ping    #在top master可以看到master管理的节点,减轻了master端的压力
server1:True
server2:Trueserver3:True

这篇关于saltstack执行模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/993638

相关文章

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

C#如何优雅地取消进程的执行之Cancellation详解

《C#如何优雅地取消进程的执行之Cancellation详解》本文介绍了.NET框架中的取消协作模型,包括CancellationToken的使用、取消请求的发送和接收、以及如何处理取消事件... 目录概述与取消线程相关的类型代码举例操作取消vs对象取消监听并响应取消请求轮询监听通过回调注册进行监听使用Wa

Python模块导入的几种方法实现

《Python模块导入的几种方法实现》本文主要介绍了Python模块导入的几种方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录一、什么是模块?二、模块导入的基本方法1. 使用import整个模块2.使用from ... i

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S