OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

10.2.3. 盐态和其他特征‌‌


虽然远程执行是一个重要的构建块,但它只是 SaltStack 可以做的一小部分。

在设置新机器时,您通常会在安装之前运行许多命令和测试来确定系统的详细信息。 这些操作可以在可重用的配置模板中形式化,称为 状态文件. 然后可以使用单个执行状态文件中描述的操作 状态.应用 盐命令。

为了节省一些时间,您可以依赖社区创建的许多现成的状态文件,这些文件分布在“盐公式”中:

https://docs.saltstack.com/en/latest/topics/development/conventions/formulas. html

还有许多其他功能可以组合:

• 按计划执行操作

• 定义响应 Minion 触发的事件的操作

• 从 Minion 收集数据

• 跨多个 Minion 编排一系列操作

• 在不安装 salt-minion 服务的情况下通过 SSH 应用状态

• 在云基础架构上配置系统并对其进行管理

• 和更多

SaltStack 非常庞大,我们不可能在这里涵盖所有功能。 事实上,有一些专门针对 SaltStack 的书籍,而且在线文档也非常广泛。 如果您想了解有关其功能的更多信息,请查看:

https://docs.saltstack.com/en/latest/

如果您管理大量机器,建议您了解更多有关 SaltStack 的信息,因为您可以在部署新机器时节省大量时间,并且您将能够在整个网络中保持一致的配置。

为了让您体验使用状态文件的方式,我们将介绍一个简单的示例:如何启用 APT 存储库并安装您在第 10.3.3 节“为 APT 创建包存储库”中创建的包[第 269 页] 和第 10.3.2 节,“创建配置包” [第 263 页]。 您还将在 root 的帐户中注册一个 SSH 密钥,以便在出现问题时可以远程登录。

默认情况下,状态文件存储在 /srv/盐 在主人身上; 它们是 YAML 结构化文件,带有 .sls 延期。 就像运行命令一样,应用状态依赖于许多状态模块:

https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

https://docs.saltstack.com/en/latest/ref/states/all/

您的 /srv/salt/offsec.sls file 将调用其中三个模块:


offsec_repository:pkgrepo.managed:

- 名称:deb http://pkgrepo.offsec.com offsec-internal main

- 文件:/etc/apt/sources.list.d/offsec.list

- key_url: salt://offsec-apt-key.asc

- 要求输入:

- pkg:offsec-defaults


offsec-defaults:pkg.installed


ssh_key_for_root:ssh_auth.present:

- 用户:root

- 名称:ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali

offsec_repository:pkgrepo.managed:

- 名称:deb http://pkgrepo.offsec.com offsec-internal main

- 文件:/etc/apt/sources.list.d/offsec.list

- key_url: salt://offsec-apt-key.asc

- 要求输入:

- pkg:offsec-defaults


offsec-defaults:pkg.installed


ssh_key_for_root:ssh_auth.present:

- 用户:root

- 名称:ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali


这个 offsec_存储库 国家依赖于 PKGrepo 状态模块。 该示例使用 管理

该状态模块中的函数以注册包存储库。 随着 密钥地址 属性,你

让 salt 知道验证存储库签名所需的(ASCII 装甲)GPG 密钥可以从 /srv/salt/offsec-apt-key.asc 在盐主上。 这 要求输入 属性确保此状态在 offsec-默认值,因为后者需要正确配置存储库才能安装软件包。

这个 offsec-默认值 state 安装同名的包。 这表明键的名称通常是状态的重要值,尽管它总是可以被覆盖 姓名 属性(如对前一个状态所做的那样)。 对于像这样的简单案例,这既可读又简洁。

最后一个状态(ssh_key_for_root) 添加 SSH 密钥 姓名 属性为 /root/.ssh/authorized_keys (目标用户设置在 用户 属性)。 请注意,为了便于阅读,我们在这里缩短了密钥,但您应该将完整的密钥放在 name 属性中。

接下来可以将此状态文件应用于给定的 minion:


服务器# salt kali-scratch state.apply offsec

卡利划痕:

----------

ID:offsec_repository 功能:pkgrepo.managed

名称:deb http://pkgrepo.offsec.com offsec-internal main 结果:True

评论:配置包 repo 'deb http://pkgrepo.offsec.com offsec-internal

主要的'

开始时间:06:00:15.767794

持续时间:4707.35 毫秒更改:

----------

回购:

deb http://pkgrepo.offsec.com offsec-internal main

----------

ID:offsec-defaults 功能:pkg.installed

结果:真

评论:以下软件包已安装/更新:offsec-defaults 开始:06:00:21.325184

持续时间:19246.041 毫秒更改:

----------

offsec-默认值:

----------

新:

1.0

老的:

----------

ID:ssh_key_for_root 功能:ssh_auth.present

服务器# salt kali-scratch state.apply offsec

卡利划痕:

----------

ID:offsec_repository 功能:pkgrepo.managed

名称:deb http://pkgrepo.offsec.com offsec-internal main 结果:True

评论:配置包 repo 'deb http://pkgrepo.offsec.com offsec-internal

主要的'

开始时间:06:00:15.767794

持续时间:4707.35 毫秒更改:

----------

回购:

deb http://pkgrepo.offsec.com offsec-internal main

----------

ID:offsec-defaults 功能:pkg.installed

结果:真

评论:以下软件包已安装/更新:offsec-defaults 开始:06:00:21.325184

持续时间:19246.041 毫秒更改:

----------

offsec-默认值:

----------

新:

1.0

老的:

----------

ID:ssh_key_for_root 功能:ssh_auth.present


名称:ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali 结果:True

评论:添加了用户 root 的授权主机密钥 AAAAB3NzaC1yc2...89C4N 开始时间:06:00:40.582539

持续时间:62.103 毫秒更改:

---------- AAAAB3NzaC1yc2...89C4N:

新建


kali-scratch 摘要

------------

成功:3(更改=3)

失败的: 0

------------

运行的总状态: 3

总运行时间:24.015 秒

名称:ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali 结果:True

评论:添加了用户 root 的授权主机密钥 AAAAB3NzaC1yc2...89C4N 开始时间:06:00:40.582539

持续时间:62.103 毫秒更改:

---------- AAAAB3NzaC1yc2...89C4N:

新建


kali-scratch 摘要

------------

成功:3(更改=3)

失败的: 0

------------

运行的总状态: 3

总运行时间:24.015 秒


它也可以通过将其记录在 /srv/salt/top.sls

文件,该文件由 状态.highstate 命令在一次传递中应用所有相关状态:


服务器# 猫/srv/salt/top.sls

根据:

卡利划痕:

- 关闭

服务器# 盐 kali-scratch state.highstate

卡利划痕:

----------

ID:offsec_repository 功能:pkgrepo.managed

名称:deb http://pkgrepo.offsec.com offsec-internal main 结果:True

评论:包 repo 'deb http://pkgrepo.offsec.com offsec-internal main' 已经

配置开始:06:06:20.650053

持续时间:62.805 毫秒更改:

----------

ID:offsec-defaults 功能:pkg.installed

结果:真

评论:软件包 offsec-defaults 已经安装开始:06:06:21.436193

持续时间:385.092 毫秒更改:

----------

ID:ssh_key_for_root

服务器# 猫/srv/salt/top.sls

根据:

卡利划痕:

- 关闭

服务器# 盐 kali-scratch state.highstate

卡利划痕:

----------

ID:offsec_repository 功能:pkgrepo.managed

名称:deb http://pkgrepo.offsec.com offsec-internal main 结果:True

评论:包 repo 'deb http://pkgrepo.offsec.com offsec-internal main' 已经

配置开始:06:06:20.650053

持续时间:62.805 毫秒更改:

----------

ID:offsec-defaults 功能:pkg.installed

结果:真

评论:软件包 offsec-defaults 已经安装开始:06:06:21.436193

持续时间:385.092 毫秒更改:

----------

ID:ssh_key_for_root


功能:ssh_auth.present

名称:ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali 结果:True

评论:授权主机密钥 AAAAB3NzaC1yc2...89C4N 已经存在

root用户

开始时间:06:06:21.821811

持续时间:1.936 毫秒更改:


kali-scratch 摘要

------------

成功:3

失败的: 0

------------

运行的总状态: 3

总运行时间:449.833 毫秒

功能:ssh_auth.present

名称:ssh-rsa AAAAB3NzaC1yc2...89C4N rhertzog@kali 结果:True

评论:授权主机密钥 AAAAB3NzaC1yc2...89C4N 已经存在

root用户

开始时间:06:06:21.821811

持续时间:1.936 毫秒更改:


kali-scratch 摘要

------------

成功:3

失败的: 0

------------

运行的总状态: 3

总运行时间:449.833 毫秒


OnWorks 的顶级操作系统云计算: