linux企业实战 --SaltStack(一) 安装部署 && 远程连接

文章目录

    • 一 SaltStack 简介
      • 1. SaltStack 是什么??
      • 2. Salt 的核心功能
      • 3. SaltStack 通信机制
    • 二 SaltStack 安装部署
      • 1. 实验准备
      • 2. 安装部署
    • 三 远程连接
      • 1. 远程执行Shell命令
      • 2. 编写远程执行模块
      • 3. YAML语言
      • 4. 配置管理

一 SaltStack 简介

1. SaltStack 是什么??

  • SaltStack 是一个配置管理系统,能够维护预定义状态的远程节点。
  • SaltStack 是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。
  • SaltStack 是运维人员提高工作效率、规范业务配置与操作的利器。

2. Salt 的核心功能

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

3. SaltStack 通信机制

  • SaltStack 采用 C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口。

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第1张图片

  • Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第2张图片

二 SaltStack 安装部署

1. 实验准备

三台主机。一台master,两台minion

主机ip hostname 作用
server1(172.25.42.1) ss1 master(主节点)
server2(172.25.42.2) ss2 minion(节点1)
server3(172.25.42.3) ss3 minion(节点2)
  • 官网:https://www.saltstack.com/
  • 设置官方YUM仓库:
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm

2. 安装部署

步骤一:在master 上安装salt-repo文件

master

[root@nn1 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm 
[root@nn1 yum.repos.d]# yum list salt-master		#要求高于3000.2,bug修复了
salt-master.noarch                                                      3000.3-1.el7                                                       salt-latest
[root@nn1 yum.repos.d]# yum install -y salt-master

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第3张图片

步骤二:官方镜像下载过慢,换为阿里云镜像

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第4张图片

步骤三:此时发现salt-master版本过低,有漏洞,因此换为原本官方镜像

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第5张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第6张图片

步骤四:配置服务端,客户端

在ss1上安装salt-master
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第7张图片

在ss2和ss3中都安装 salt-minion
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第8张图片

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第9张图片

步骤五:设置开机自启动
在这里插入图片描述步骤六:查看端口,发现两个备用端口
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第10张图片在 /etc/salt/master 配置文件中设置端口
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第11张图片

步骤七:此时查看进程

发现自动开启了过多进程,但无任何信息

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第12张图片

因此需要安装该软件,可以查看更多的进程信息
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第13张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第14张图片

步骤九:在minion端加master的IP

vim /etc/salt/minion   #minion配置文件

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第15张图片linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第16张图片

master的IP加入后,重启minion端
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第17张图片

步骤十:连接

master端和minion端配置好后,查看master端的4505和4506端口,发现4506接收到了来自ss2的连接请求
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第18张图片

接收到连接请求后,若允许了,则4505端口收到已经被允许的SS2

salt-key -L 列出连接请求
salt-key -A 允许所有的连接请求
salt-key -a ss2 允许指定主机连接请求

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第19张图片连接后,查询/etc/salt/pki/ 目录下有连接到的SS2主机

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第20张图片在master端可以查看minion端的连接目录已经彼此交换的公钥
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第21张图片
此时在已连接的minion端下 /etc/salt/pki/目录下查询目录结构

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第22张图片同时也可以查到交换的密钥
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第23张图片

步骤十一:在ss3端加入masterIP,进行配置
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第24张图片

允许连接
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第25张图片linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第26张图片

三 远程连接

1. 远程执行Shell命令

salt 命令由三个主要部分构成

salt '' <function> [arguments]

salt 内置执行模块列表:
http://docs.saltstack.cn/ref/modules/all/index.html
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第27张图片

查看所连接的minion:ping

* 表全部被允许连接的minion端
* 也可只指定 minion

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第28张图片

查看所连接的minion: df -h

-E 表示正则表达式

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第29张图片
查看所连接的minion: ping hostname
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第30张图片

pkg模块

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第31张图片

在 master端 安装、卸载minion(ss2端)的 httpd
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第32张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第33张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第34张图片

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第35张图片

ss2 minion端,master端的所有指令都存放该目录下

cat /var/cache/salt

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第36张图片

2. 编写远程执行模块

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第37张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第38张图片

创建远程配置文件的目录
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第39张图片

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第40张图片

在默认远程配置目录下,创建模块目录
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第41张图片

编写模块文件,并同步模块
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第42张图片执行后,master端的操作都缓存在该目录下
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第43张图片

master端也可以直接调用
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第44张图片

3. YAML语言

规则
缩进:Salt需要每个缩进级别由两个空格组成,不要使用Tabs
冒号:字典的keys在YAML中的表现形式是一个以冒号结尾的字符串
短横杠:想要表示列表项,使用一个短横杠加一个空格。

4. 配置管理

Salt 状态系统的核心:SLS

sls文件命名:
	1..sls 作为后缀,但调用时不需要加后缀
	2.使用子目录来做组织是一个很好的选择
	3.int.sls 在一个子目录里面表示引导文件,也就表示子目录本身 'apache/init.sls'=='apache'
	4.如果同时存在apache.sls 和 apache/init.sls,则apache/init.sls被忽略,apache.sls被用来表示apache

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第45张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第46张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第47张图片

创建sls文件,并指定minion端执行

安装httpd文件
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第48张图片linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第49张图片

安装多个软件包

linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第50张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第51张图片
linux企业实战 --SaltStack(一) 安装部署 && 远程连接_第52张图片

批量执行,TOP文件

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

批量执行
# salt '*' state.highstate

你可能感兴趣的:(Linux企业实战)