saltstack 自动化运维

一 saltstack 简介:

saltstack 是基于python开发的一套C/S架构配置管理工具,底层使用zeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理
ZeroMQ 使得saltstack能快速在成千上万台机器上进行各种操作,而且采用RSAkey 方式确认身份,传输采用AES加密。
saltstack中服务端叫做master,客户端叫做minion,
在master和minion端都是以守护进程的模式运行,一直监听配置文件里面的ret_port(接受minion请求)和publish_port(发布消息)的端口。
当minion运行时会自动连接到配置文件里面定义的master地址ret_port端口进行连接认证,默认客户端请求id 是 socket.getfqdn()取到的值,也可以在minion启动之前修改minion的id值。

二 服务的安装及基本说明

1 server 1 上安装客户端和服务器端

软件和相关文档:
链接:https://pan.baidu.com/s/1wBVFXI8qYf-Z0YTDnjchYg
密码:mofl

saltstack 自动化运维
saltstack 自动化运维

2 server 2 和 server3 端安装客户端

saltstack 自动化运维
saltstack 自动化运维

3 服务端安装树并查看其状态

saltstack 自动化运维
saltstack 自动化运维

4 其密钥的存放路径

saltstack 自动化运维

5 将从节点指向主节点

saltstack 自动化运维
saltstack 自动化运维

6 指向前查看其密钥为空

saltstack 自动化运维

7 启动slave服务

saltstack 自动化运维

8 查看从节点密钥,当服务启动后,会自动使用md5校验生成密钥

saltstack 自动化运维

9 服务器master端查看并启动服务

saltstack 自动化运维

10 查看节点slave情况

saltstack 自动化运维

11 允许所有未注册的节点注册,并查看是否注册成功

saltstack 自动化运维

12 查看master 端生成的公钥

saltstack 自动化运维

13 查看slave 及 minion端由master发送的公钥

saltstack 自动化运维

14 查看master端由minion端发送的公钥

saltstack 自动化运维
saltstack 自动化运维
由此可知,其验证是双向验证,及master端将其公钥发送到minion端,minion也将公钥发送到master端。

saltstack 自动化运维
其中4505 负责发送数据到客户端,
4506 负责接收客户端的数据到服务器

三 基础应用

1 部署远端httpd 服务

1 master环境准备

开启工作目录并重启进程加载
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 了解YAML

1 默认的sls文件的renderer 是YAML renderer ,YAML是一个有很多强大特性的标记性语言,salt 使用了一个YAML的小型子集,映射非常常规的数据结构,向列表和字典,YAML renderer 的工作是将YAML数据格式的结构编译成python数据结构给salt使用
规则一 :
缩进: YAML 使用一个固定的缩进风格表示数据层结构关系,salt需要每一个缩进级别都有两个空格组成,不要使用tab
规则二:
冒号:python 的字典当然是简单的键值对
规则三:
短横杠:想要表示列表项,使用一个短横杠加一个空格,多项使用同样的缩进级别作为同一列表的一部分。

3 部署:

saltstack 自动化运维
saltstack 自动化运维
其中apache-install只是一个名字
pkg.installed中pkg是数据包处理的类,是一个大的方式,installed 表示其是对数据包进行安装处理
-pkgs 用于指定安装多个数据包
saltstack 自动化运维
saltstack 自动化运维

4 查看安装结果

saltstack 自动化运维

5 设置部署并启动

saltstack 自动化运维
saltstack 自动化运维
其中service 也是一个大的类,而running是其中的方法
其有reload 、restart、enable 等常用方法

6 实施

saltstack 自动化运维

7 查看

saltstack 自动化运维

8 配置httpd配置文件并推送

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

9 配置

saltstack 自动化运维
saltstack 自动化运维
其中使用到了file.managed模块
--name:表示目标目录,及客户端对应的目录
--source:表示配置文件的来源路径,其是相对于/srv/salt的路径

10 部署

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

11 查看 :

saltstack 自动化运维

12 另一种配置方式:

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 nginx 源码包编译配置

1 配置并认证通过server3

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 创建相关文件夹,并查看,用于存放不同的文件和数据包

saltstack 自动化运维
saltstack 自动化运维

3 安装配置相关依赖包

saltstack 自动化运维
saltstack 自动化运维

4 安装配置nginx用户名

saltstack 自动化运维
saltstack 自动化运维

5 配置nginx的推送和解压

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

6 部署

saltstack 自动化运维
查看是否编译成功
saltstack 自动化运维
saltstack 自动化运维

7 创建nginx配置文件

saltstack 自动化运维
saltstack 自动化运维

8 创建启动和触发机制

saltstack 自动化运维
saltstack 自动化运维

9 部署

saltstack 自动化运维
saltstack 自动化运维

10 查看

saltstack 自动化运维

3 安装haproxy实现负载均衡:

1 另一个节点安装以获取到期配置文件

saltstack 自动化运维

2 复制配置文件主节点

saltstack 自动化运维

3创建haproxy 目录

saltstack 自动化运维

4 修改配置文件

saltstack 自动化运维
saltstack 自动化运维

5 配置客户端服务

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

6 配置认证key

saltstack 自动化运维
saltstack 自动化运维

7 查看总的目录结构

saltstack 自动化运维

8 查看haproxy 目录结构

saltstack 自动化运维

9 配置haproxy安装配置文件

saltstack 自动化运维

10 设置其分配给不同的主机

saltstack 自动化运维

11 进行一键配置

saltstack 自动化运维

12 配置网页查看其负载均衡

saltstack 自动化运维
saltstack 自动化运维

13 测试其负载均衡

saltstack 自动化运维

客户端通过服务端数据发送到客户端指定的目录,并有客户端进行安装和配置,其配置文件目录如下
saltstack 自动化运维

四 扩展模块

1 grains

1 常用命令

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 设置标签

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

3 其他用法

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 pillar 模板使用

1 配置pillar模块目录

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 创建目录并创建文件

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

3 测试

saltstack 自动化运维

saltstack 自动化运维

3 mysql 应用于记录数据

1 安装数据库并导入相应的数据

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 客户端安装服务:

saltstack 自动化运维

3 客户端配置mysql相关数据

saltstack 自动化运维
saltstack 自动化运维

saltstack 自动化运维

4 mysql数据库进行授权

saltstack 自动化运维

5 测试并查看结果

saltstack 自动化运维

4 master端用于将数据提交给mysql

此处的客户端即需要将数据传送到master 端也需要将数据发送给mysql。难度大,如果直接在master端配置mysql-python则只需mater将数据写入数据库即可

1 客户端关闭mysql链接配置

saltstack 自动化运维
saltstack 自动化运维

2 重启服务

saltstack 自动化运维

3 服务端安装mysql-python

saltstack 自动化运维

4 服务端配置mysql相关配置

saltstack 自动化运维
saltstack 自动化运维

5 重启服务

saltstack 自动化运维

6 mysql授权:

saltstack 自动化运维

7 测试:

saltstack 自动化运维

配置相关模块

1 关闭mysql及配置,此处是实验,以防mysql影响正常性能:
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

其他扩展模板的基本使用

saltstack 自动化运维
saltstack 自动化运维
可以通过此格式编写其他的服务
saltstack 自动化运维
saltstack 自动化运维

5 jinja 模板的使用

1 方式一 :

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 方式二:通过模板进行修改

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

3 方式三 通过grains进行修改IP

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

通过定义配置文件进行修改其端口或IP地址
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

6 keepalived 安装与基本配置:

1 yum 的方式安装

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 通过编译的方式进行keepalived的安装

1 关闭和删除前面配置的服务

saltstack 自动化运维
saltstack 自动化运维

2 准备数据包

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

3 基本服务配置,用于生成配置文件和启动脚本

saltstack 自动化运维

4 拷贝配置文件和启动脚本

saltstack 自动化运维
saltstack 自动化运维

5 编辑配置文件

saltstack 自动化运维
saltstack 自动化运维

6 添加下面的启动脚本复制

saltstack 自动化运维
saltstack 自动化运维

7 创建运行脚本,并加上变量

saltstack 自动化运维
saltstack 自动化运维

8 添加变量

saltstack 自动化运维

9 配置top.sls

saltstack 自动化运维
saltstack 自动化运维

10 运行,必须在top.sls所在的目录下

saltstack 自动化运维

11 查看结果:

saltstack 自动化运维

6 salt proxy 安装与配置

1 服务器端删除原有的minion配置及key 重新获取key

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

2 master 端安装服务,用于链接mastertop 和 master

saltstack 自动化运维

3 配置与server4 之间的链接

saltstack 自动化运维
saltstack 自动化运维

4 topmaster 端安装配置

saltstack 自动化运维

5 配置配置文件

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

saltstack 自动化运维

6 启动master端服务,使其认证key

saltstack 自动化运维

7 服务端获取key 并通过认证

saltstack 自动化运维

8 测试

saltstack 自动化运维

7 salt ssh:

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

8 salt API:

1 安装api软件

saltstack 自动化运维

2 生成密钥

saltstack 自动化运维
saltstack 自动化运维

3 修改服务端配置,使其支持API

saltstack 自动化运维
saltstack 自动化运维

4 创建用户名和密码,用于认证API,并创建相关用户和密码

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

5 重启服务并查看相关端口

saltstack 自动化运维

6 测试minion端的连通性

saltstack 自动化运维

7 API 链接测试,并获取token

saltstack 自动化运维

8 进行获取客户端列表

saltstack 自动化运维

9 配置saltapi.py 用于生成相关服务的脚本

saltstack 自动化运维
saltstack 自动化运维
saltstack 自动化运维

saltstack 自动化运维

10 在客户端删除相应的服务。并通过salt-API进行创建

saltstack 自动化运维

saltstack 自动化运维

11 查看,则安装成功

saltstack 自动化运维

猜你喜欢

转载自blog.51cto.com/11233559/2117600