自动化运维--SaltStack

一、SaltStack基础

1.SaltStack原理

1)SaltStack由master(服务端)和minion(客户端)组成,master和minion通过ZeroMQ(消息队列)通信
2)master端监听4505和4506端口,4505为master和minion认证通信端口,4506为master发送命令或接收minion的命令返回信息
3)当客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端进行控制,客户端检查到连接断开后,会定期向master请求注册连接

2.SaltStack常用模块

1)pkg模块:应用于软件包管理,包括增删改查
2)file模块:管理文件操作,包括文件同步、设置文件权限和所属用户组、删除文件等操作
3)cmd模块:在minion上执行命令或脚本
4)user模块:管理用户账户操作
5)service模块:管理系统服务
6)cron模块:管理计划任务

二、SaltStack的部署

1.因为SaltStack要使用证书认证,所以所有计算机名称要改为FQDN名称
2.在master和minion上安装epel源
yum -y install epel-release

3.更改epel源

vim /etc/yum.repos.d/epel.repo

在这里插入图片描述

4.在master端安装master
yum -y install salt-master
5.在minion上安装minion
yum -y install salt-minion
6.修改master的主配置文件
vim /etc/salt/master
	interface: 192.168.1.2		#监听地址,为安全起见建议写内网ip,第15行
	auto_accept: True				#master自动认证minion的认证,第215行
	file_roots:  #SaltStack的文件根目录,默认没有该目录,需手动创建,第416行
  		base:
    		- /srv/salt
	pillar_roots:			#pillar的主目录,默认没有还目录,需手动创建,第529行
  		base:
    		- /srv/pillar
	pillar_opts: True		#开启pillar(私密性数据加密传输)功能,第552行
	nodegroups:		#minion组,第710行
  		group1: 'www.http1.com,www.http2.com'
  		group2: 'www.squid.com'

7.创建配置文件中没有的目录

mkdir /srv/salt
mkdir /srv/pillar
8.启动master
service salt-master start

查看是否启动
在这里插入图片描述

9.修改minion的配置文件
vim /etc/salt/minion
	master: 192.168.1.2	#master的ip
	id: www.http2.com		#被管理端,即本机的主机名
10.启动minion
service salt-minion start
11.测试主与从的通信状态

在这里插入图片描述

11.salt的使用
语法:salt [ options] '<target>' <function> [arguments]

1)查看系统中的所有模块

salt '*' sys.list_ modules	

2)查看指定模块用法

salt '*' sys.doc 模块名

3)查看某个模块下所有选项

salt '*' sys.list_functions 模块名

4)查看某个选项的用法

salt '*' sys.state_doc 选项

三、SaltStack批量部署服务(以nginx为例)

原理
  主要使用grains、pillar、state组件完成,grains和pillar采集被控端的数据生成变量,前者采集静态的数据,如磁盘个数、CPU个数等,后者采集动态数据,如CPU使用率等。state通过grains和pillar收集的信息,创建安装并自定配置nginx

1.创建grains目录,将目录下定制文件同步到被控端主机上,然后获取被控端主机打开文件句柄数
mkdir /srv/salt/_grains
vim /srv/salt/_grains/nginx_config.py

在这里插入图片描述
3)同步grains模块

salt '*' saltutil.sync_all

4)获取打开文件句柄数

salt '*' grains.item max_open_file

在这里插入图片描述

2.配置pillar,在主控端创建文件入口,入口的作用是定义pillar的数据覆盖被控主机的有效范围

1)创建入口文件

vim /srv/pillar/top.sls
	base:
  		group1:		#组名
    		- match: nodegroup
    		- http1server  #自定义名字
  		group2:		#组名
    		- match: nodegroup
    		- http2server  #自定义名字

2)创建“自定义名字.sls”定义nginx的安装目录

vim /srv/pillar/http1server.sls
	nginx:
		root: /usr/local
vim /srv/pillar/http2server.sls
	nginx:
		root: /usr/local

4)查看pillar的配置情况
在这里插入图片描述

3.配置state,通过预定义好的sls文件,对被控主机进行管理,如程序包、文件、网络配置、系统服务、系统用户等

1)首先定义state的入口文件top.sls

vim /srv/salt/top.sls
	base:
	 	 '*':
  	 	  - nginx

2)定义被控主机的状态,安装nginx,配置文件并启动

vim /srv/salt/nginx.sls

在这里插入图片描述

4.使用jinja定义nginx的配置文件

1)因为上面定义了nginx配置文件的源路径,所以先创建nginx目录

mkdir /srv/nginx

2)编写nginx的配置文件

vim /srv/salt/nginx/nginx.con

在这里插入图片描述
在这里插入图片描述
3)执行命令,让客户端自动安装nginx并配置启动

salt '*' state.highstate

在这里插入图片描述
完成

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值