自动化运维工具 SaltStack (一)(Saltstack的简介+远程执行+文件的几种编写方式)

SaltStack简介

saltstack是一个配置管理系统,能够维护预定义状态的远程节点。

saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。
saltstack是运维人员提高工作效率、规范业务配置与操作的利器。

Salt的核心功能

  • 使命令发送到远程系统是并行的而不是串行的
  • 使用安全加密的协议
  • 使用最小最快的网络载荷
  • 提供简单的编程接口
  • Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。

Saltstack采用C/S模式,由master和minion构成,master是服务器端minion是客户端。

在master上发送命令给符合条件的minion,minion就会执行相应的命令,master和minion之间是通过ZeroMQ(消息队列进行通信的。

在这里插入图片描述
SaltStack的master端默认监听4505和4406,4505为master和minion认证通信端口,4506为master用来发送命令或接收minion的命令执行返回信息。

当客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,而master通过这条TCP连接对客户端进行控制。如果断开连接,master对客户端将不能进行控制。但是,当客户端检查到连接断开后,会定期向master端请求注册连接。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

SaltStack的安装

官网:https://www.saltstack.com/
设置官方YUM仓库:
# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
master端设置:
# yum install -y salt-master	#安装master端
# systemctl enable salt-master	#设置master自启动
# systemctl start salt-master	#启动master服务
minion端配置:
# yum install -y salt-minion	#安装minion端
# vim /etc/salt/minion
master: 172.25.0.1		#设置master主机的ip
# systemctl enable salt-minion
# systemctl start salt-minion

在这里插入图片描述在这里插入图片描述
1.配置官网得到仓库地址,获取最新的软件包
在这里插入图片描述2.在这里插入图片描述或者
在这里插入图片描述
在这里插入图片描述

启动salt-master
在这里插入图片描述在这里插入图片描述
3.ser3minion同样建立仓库(ser4和ser3的配置一样,这里以ser3为例子)

在这里插入图片描述在这里插入图片描述4.在ser2上
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述再次查看时
在这里插入图片描述在这里插入图片描述5.配置minion
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述6.在这里插入图片描述在这里插入图片描述7.在master端做认证
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述8.master和minion交换公钥的过程
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在minion端
在这里插入图片描述在这里插入图片描述在这里插入图片描述9.测试连接
在这里插入图片描述在这里插入图片描述
注意:
在这里插入图片描述在这里插入图片描述

SaltStack远程执行

远程执行shell命令

Salt命令由三个主要部分构成:
salt '<target>' <function> [arguments]
target: 指定哪些minion, 默认的规则是使用glob匹配minion id. 
# salt '*' test.ping
Targets也可以使用正则表达式:
# salt -E 'server[1-3]' test.ping
Targets也可以指定列表:
# salt -L 'server2,server3' test.ping
funcation是module提供的功能,Salt内置了大量有效的functions. 
# salt '*' cmd.run 'uname -a'
arguments通过空格来界定参数:
# salt 'server2' sys.doc pkg			#查看模块文档
# salt 'server2' pkg.install httpd
# salt 'server2' pkg.remove httpd
salt内置的执行模块列表:
http://docs.saltstack.cn/ref/modules/all/index.html

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述pkg模块
在这里插入图片描述在这里插入图片描述

创建文件执行远程命令

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在ser3上安装完成
在这里插入图片描述

编写远程执行模块

创建模块目录:
# mkdir /srv/salt/_modules
编写模块文件:
# vim /srv/salt/_modules/mydisk.py
def df():
    return __salt__['cmd.run']('df -h')
同步模块:
# salt server2 saltutil.sync_modules

在这里插入图片描述
1.在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

几种编写文件的方式

1.在这里插入图片描述在这里插入图片描述在这里插入图片描述2.在这里插入图片描述在这里插入图片描述在这里插入图片描述3.在这里插入图片描述在这里插入图片描述在这里插入图片描述4.如何实现不同节点装不一样的包
在这里插入图片描述(1)
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述(2)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述5.如何更好的对目录进行管理
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

file模块配置httpd

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

yaml语法与配置管理

规则一: 缩进
Salt需要每个缩进级别由两个空格组成,不要使用tabs。
规则二: 冒号
字典的keys在YAML中的表现形式是一个以冒号结尾的字符串。
my_key: my_value
规则三: 短横杠
想要表示列表项,使用一个短横杠加一个空格。
  - list_value_one
  - list_value_two
创建一个sls文件:
# vim /srv/salt/apache.sls
httpd:                 	# ID声明
  pkg:                  	# 状态声明
    - installed           	# 函数声明
指定主机执行:
# salt server2 state.sls apache
准备Top文件:
# vim /srv/salt/top.sls
base:
  '*':
    - apache
批量执行:
# salt '*' state.highstate
	
Salt 状态系统的核心是SLS,或者叫SaLt State 文件。
SLS表示系统将会是什么样的一种状态,而且是以一种很简单的格式来包含这些数据,常被叫做配置管理。
sls文件命名:
sls文件以”.sls”后缀结尾,但在调用是不用写此后缀。
使用子目录来做组织是个很好的选择。
 init.sls 在一个子目录里面表示引导文件,也就表示子目录本身, 所以``apache/init.sls`` 就是表示``apache``.
如果同时存在apache.sls 和 apache/init.sls,则 apache/init.sls 被忽略,apache.sls将被用来表示 apache.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值