入门Salt - 基本安装和设置

原文地址:https://www.linode.com/docs/applications/configuration-management/getting-started-with-salt-basic-installation-and-setup/

使用Linode更新于2018.03.23周五

贡献于GitHub

报告问题 | 查看文件 | 编辑文件

Salt是一个基于Python的配置管理平台,旨在从单个主服务器控制许多从服务器(用Salt的术语叫Minions)。本指南将指导您配置Salt Master和Minion,并支持任何linux发行版。

准备工作

  • 您将需要至少两个Linode:一个将作为Salt Master服务端,另一个将作为Salt Minions客户端。
  • 设置每个Linode的主机名。主机名将用于标识以命名来明确Salt中的每个Linode(例如master,minion1,minion2等)。
  • 如果您的Linode都设置在同一数据中心,我们建议您为每个系统都配置专用IP地址

使用Salt Bootstrap安装

Salt Bootstrap是一个配置脚本,它可以自动检测正在运行的操作系统,然后设置正确的存储库并安装Salt。安装脚本旨在能在Salt master和所有minion机器上运行。

Salt Master

curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P -M -N

注意 : -N的标志表示不能安装salt-minion,因为该系统是Salt Master。

Salt Minions

curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P

协调网络寻址

Salt Master

1.在文件顶部附近取消注释#interface:的行,并将地址占位符替换为Salt master的Linode的地址。如果您的Linode都设置在同一数据中心,您可以使用Linode的专用IP地址。

/etc/salt/master

# The address of the interface to bind to: 
interface: 203.0.113.0

2.重启Salt: sudo systemctl restart salt-master

Salt Minions

注意 : 必须对每个 Salt minion 执行此步骤。

在顶部/etc/salt/minion附近取消注释#master: salt,并替换salt为Salt master的IP地址:

/etc/salt/minion

1 2 3

# Set the location of the salt master server. If the master server cannot be # resolved, then the minion will fail to start. master: 203.0.113.0

给Salt Master认证Minions

获取Salt Master Key指纹

列出Salt master的密钥指纹列表,以及与其关的所有Minions的指纹:

sudo salt-key --finger-all

您会看到在Unaccepted Keys下列出的minion主机名或IP地址,以及每个密钥的SHA256指纹。这里指纹被...截断以避免混乱。

Local Keys:
master.pem: e9:6a:86:bf...
master.pub: 4b:2a:81:79...
Accepted Keys:
Unaccepted Keys:
minion1: c7:b2:55:83:46...
minion2: f8:41:ce:73:f8...

配置Salt Minions

1.在单引号之间,添加Salt Master的master.pub指纹到/etc/salt/minion: / etc /salt/minion

# Fingerprint of the master public key to validate the identity of your Salt master
# before the initial key exchange. The master fingerprint can be found by running 
# "salt-key -f master.pub" on the Salt master.
master_finger: '4b:2a:81:79...'

2.重启Salt:

sudo systemctl restart salt-minion

3.列出Minion的指纹散列,并使用上面步骤1中Salt Master报告的内容进行验证:

sudo salt-call key.finger --local

接收Minions

1.一旦验证了每个Minion ID,从Salt Master来的请全部接收:

sudo salt-key -A

注意:要接收单个的minion,请按主机名或IP地址来指定它:

sudo salt-key -a hostname

2.验证接收的minions的状态,下面的这个命令该要返回已验证并正在运行的每个Minion的主机名或IP地址。

sudo salt-run manage.up

有关Salt键的更多信息,请参阅salt-key手册页。

测试Master-Minion的连接

Ping掉所有的Minions:

sudo salt '*' test.ping

输出应显示每个Minion都是true

root@saltmaster:~# salt '*' test.ping
minion1:
True
minion2:
True

概述包管理

使用pkg状态模块在Minions中安装或删除软件包。只要你运行的是由SaltStack支持的Linux发行版,SaltStack控制发行版的包管理器,aptyum等。可以通过指定Minion的主机名或IP地址,或通过向所有Minions使用*来对独立的Minions指定相应的包。

使用Salt minion的系统存储库中相同的包名称安装包。比如,apache是Debian和Ubuntu中的Apache httpd服务器包,httpd而是基于RHEL的系统中的包的名称。如果您的Salt Minions是Debian或Ubuntu的版本,您可以使用以下示例安装或删除Apache。

将Apache安装到所有的Minions:

sudo salt '*' pkg.install apache2

minion5中删除Apache:

sudo salt 'minion5' pkg.remove apache2

列出安装在minion1的所有包:

sudo salt 'minion1' pkg.list_pkgs

使用服务模块控制服务

在所有Minions上重启Apache:

sudo salt '*' service.start apache2

minion1上查看mariadb服务的状态:

sudo salt 'minion1' service.status mariadb

接下来的步骤

Salt是一个复杂的生态系统,必须通过学习和实践才能彻底掌握。该Salt文档有很多可能帮助到你的例子、教程和参考页面。

接下来,您应首先熟悉执行模块Salt States,并确定如何将它们应用于您的设置。

本文的版权归 陈良莉 所有,如需转载请联系作者。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

Saltstack自动化操作记录(1)-环境部署

早期运维工作中用过稍微复杂的Puppet,下面介绍下更为简单实用的Saltstack自动化运维的使用。 Saltstack知多少 Saltstack是一种全新的...

26210
来自专栏DannyHoo的专栏

iOS开发中利用YYModel进行归档

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1682
来自专栏施炯的IoT开发专栏

GSM Communication on EBox4300--(3)

GSM Communication on EBox4300--(1)主要是关于EBox4300上实现GSM通信的框架;GSM Communication on...

2006
来自专栏大魏分享(微信公众号:david-share)

讲真,Ansible 可以管理Windows?

前言: 本文是我和李尧老师一起实验。李尧是红帽高级培训讲师,目前负责红帽中国区员工内部技术培训与认证。 一、Ansible能对windows做什么操作? Ans...

7645
来自专栏一个默默无闻的工程师的日常

RDO安装openstack遇到的一些问题(swift & mongodb)

1222
来自专栏一场梦

分享11个表白网源码,不送女朋友!

1864
来自专栏along的开发之旅

使用Cmder代替Cmd进行程序开发

只有方便的快速切换到当前目录,才能提高生产力.要不然先Win+X调用命令提示符,然后再CD %指定Path%,黄花菜都凉了.

5634
来自专栏bboysoul

在树莓派上搭建dns缓存服务器

最近一直在研究dns服务器,如果在本地搭建dns服务器我觉得没什么必要,因为我局域网中的机器不是特别多,但是搭建一个dns缓存服务器在树莓派上还是挺有用的,可以...

2444
来自专栏从流域到海域

使用Vagrant将您的笔记本电脑刻录到虚拟机

(原标题:Carve Your Laptop Into VMs Using Vagrant,事实上这篇文章讲述的是在你的笔记本你电脑上使用Vagrant创建虚拟...

28310
来自专栏MessageQueue

消息中间件中的一些概念

主题,从逻辑上讲一个Topic就是一个Queue,即一个队列;从存储上讲,一个Topic存储了一类相同的消息,是一类消息的集合。比如一个名称为trade.ord...

1223

扫码关注云+社区

领取腾讯云代金券