2.saltstack使用指南:saltstack组件

本文是SaltStack使用指南,详细介绍了saltstack的组件,包括实验环境、管理对象Target、Grains(系统信息记录)、Pillar(数据管理)以及状态描述文件States的使用。内容涵盖配置文件、 minion与master的连接、Grains的定义与管理、Pillar数据存储以及states的编写示例。
摘要由CSDN通过智能技术生成

saltstack组件


实验环境

saltstack(master主机):
192.168.1.103(master.example.com)
saltstack(minion主机):
192.168.1.104(minion4.example.com)

注意:

1.两个节点的防火墙都需要关闭或者允许数据包的传入传出
2.两个节点之间要相互作dns解析(/etc/hosts)
3.两个节点的selinux关闭


1.管理对象Target

1.首先我们设置master和minion的配置文件内容,对于master,我设置auto_accept为True,即对客户端的连接自动进行签证,这样他们之间的连接就自动进行了加密传输。关于服务端的配置信息如下所示(文件为/etc/salt/master):
这里写图片描述
interface为publish/ret端口的监听地址(服务端地址)。

2.在客户端只需要指定master(服务端)的地址以及客户端的名称即可:
这里写图片描述

*注意:
saltstack的配置信息都符合一定的格式规范,每一个配置选项后边的内容必须要用空格隔开。如果没有用空格隔开,则会报格式错误。
这里写图片描述
修改完客户端的配置,将master和后边的内容连接在了一起,重新启动客户端的服务/etc/init.d/salt-minion,则会产生报错:
这里写图片描述

3.在master端检测已经签证的minion列表,可以看到minion-192.168.1.104主机已经获得了签证:
这里写图片描述

4.下面我们可以测试minion与master的连通性:
这里写图片描述

上述操作做了一个简单的测试,下面我们介绍以下saltstack的master可能会用到的常见命令和参数,毕竟我们需要管理众多的minion节点:

master命令:

这里写图片描述

minion命令:
这里写图片描述


2.管理对象属性

Grains是saltstack组件中非常重要的组件之一,它用来记录minion的系统信息(操作系统、域名、IP 地址、内核信息、操作系统类型、内存信息以及其他更多的系统信息)。

Grain收集的信息是静态的,在minion第一次启动时采集数据(除非下次重起,否则数据不会变化)。

首先我们插好Grains相关命令用法:
这里写图片描述

关于这些命令的具体用法我们可以使用如下命令查看文档:
这里写图片描述

除了上述系统自带的一些Grains方法之外,我们还可以通过以下三种方式来自定义Grains:

(1)通过Minion配置文件定义
(2)通过Grains相关模块定义
(3)通过Python脚本定义


(1)通过Minion配置文件定义

关于Grains的配置内容可以出现在多个文件中,他们之间需要排列出相应的优先级,下面我们给出其关系(越向下的优先级越高):

  1. Core grains.
  2. Custom grains in /etc/salt/grains.
  3. Custom grains in /etc/salt/minion.
  4. Custom grain modules in _grains directory, synced to minions.

下面我们给出示例,关于grains的内容编写在/etc/salt/minion:
[root@minion4 ~]# vim /etc/salt/minion
这里写图片描述

我们给出了roles、deployment、cabinet等键值对。这个内容的编写是在客户端进行的,当修改完成后我们重启客户端:
这里写图片描述

然后在服务端可以查看客户端的grains信息,以roles为例:
这里写图片描述


(2)通过Grains相关模块定义
在上述sys.list_functions模块中我们查询了关于grains的操作,其中的grains.append方法可以创建出新的grains信息:
这里写图片描述

还可以使用grains.setvals同时设置多个grains信息:
这里写图片描述

(3)关于使用python脚本定义grains信息的方法在后续的章节中将会进行介绍。


3.数据管理中心

除了Grains可以采集minion的信息,Pillar也是saltstack组件中的重要部分,它负责数据的管理。Pillar在saltstack的主要作用就是存储和定义配置管理中需要的数据(比如版本号、用户名密码等信息),它的编写格式同样符合YAML(这个我们后续进行介绍)。

Pillar的默认存储路径为/srv/pillar,这个是它的根目录:
这里写图片描述

(1)下面我们以一个简单的示例说明pillar是如何设置信息的,首先需要创建目录/srv/pillar:
这里写图片描述

(2)然后创建top.sls主配置文件:

[root@master pillar]# vim /srv/pillar/top.sls
这里写图片描述

(3)’*’代表所有的minion节点,然后设置test_data的内容:
[root@master pillar]# vim /srv/pillar/test_data.sls
这里写图片描述

我们还可以查看更多关于pillar模块的方法:
这里写图片描述

我们还可以将pillar的数据存储在数据库中,在后续的章节中将会进行介绍。


4.针对管理对象操作

Module是我们使用最多的一个组件,它包括了我们对于对象管理的各种操作,例如我们在一开始测试master与minion连通性的时候使用了Module中的test module以及它所包含的方法ping。

(1)查看指定minion的module列表:

查看minion所支持的module列表可以使用如下方法:
这里写图片描述

(2)查看指定module的所有function:
这里写图片描述

例如测试test.echo:
这里写图片描述


5.状态描述文件

在saltstack中,states是我们主要的配置语言,对于不同的业务需求需要编写大量的states文件,其中使用的语法依然是YAML语法(这个配置方式和xml的作用类似,不过配置方法不同)。

(1)查看所有的states列表:
这里写图片描述

(2)查看指定states的所有function:
这里写图片描述

(3)如何去编写自己的states:
上述介绍的都是查询系统已有的states,接下来的例子介绍如何编写一个简单的states。

任务:在指定的minion节点上的/tmp目录中创建hello.conf文件。

(1)在/srv/salt/目录中创建hello.sls文件:
这里写图片描述

(2)这里边的salt://hello.conf路径是指/srv/salt/hello.conf文件。即我们要明确salt://其实代表的是/srv/salt目录

(3)给定/srv/salt/hello.conf文件的内容,并且进行同步设置。
这里写图片描述

同步hello.conf到minion-192.168.1.104节点:
这里写图片描述


小结:

上述的示例中我们介绍了salt的多种组件(虽然不是非常全面),并且给出了简单的示例,在后续的章节中我们将会更加深入的配置salt,使其更加的实用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值