我正在尝试查看盐配方文档,似乎对盐配方的真正含义有根本的误解。
可以理解,这个问题似乎是these questions的重复,但是由于我未能掌握基本概念,因此我也在努力利用这些问题的答案问题。
我认为,盐公式基本上只是一个实现额外功能的程序包,就像
#include <string.h>
在C中,或
import numpy as np
在Python中。因此,我想,我可以将salt-formula-linux
下载到/srv/formulas/salt-formula-linux/
,将其添加到file_roots
,重新启动主服务器(全部按照docs进行操作),然后编写一个文件像swapoff.sls
包含
disable_swap:
linux:
storage:
swap:
file:
enabled: False
(上面的内容与存储库根目录中的示例有些相似),希望该公式能够处理从/etc/fstab
中删除掉交换项并为我运行swapoff -a
的情况。不用说,这没有用,显然是因为我不了解盐配方的含义。
那么,什么是盐配方,该如何使用?我也可以将其用作功能库吗?
答案 0 :(得分:0)
这个答案在所有技术上可能都不完全正确,但这正是解决我问题的方法。
盐公式不是功能库。相反,它是状态文件的集合。虽然状态文件通常很简单,例如我的一些用户定义的
--> top.sls <--
base:
'*':
- docker
--> docker.sls <--
install_docker_1703:
pkgrepo.managed:
# stuff
pkg.installed:
- name: docker-ce
创建状态文件
--> swapoff.sls <--
disable_swap:
linux.storage.swap: # and so on
也许不是路要走。好吧,至少对于缺乏知识的初学者来说可能不是。
相反,将一项添加到top.sls
:
- linux.storage.swap
但是,这还不够。大多数公式(或其中的状态文件,如果需要的话)都是高度可参数化的,即它们充满了带有变量名的占位符,例如{{ swap.device }}
。如果没有什么可以填补这个空白,那么状态填充将无能为力。这些空白由支柱填补。
剩下的就是在swap.sls
中创建一个像/srv/pillar/
这样的文件,其中包含类似(根据该公式的示例)
linux:
storage:
enabled: true
swap:
file:
enabled: true
engine: file
device: /swapfile
size: 1024
,还有/srv/pillar/top.sls
和
base:
'*':
- swap
也许/srv/pillar
也应包含在pillar_roots
的{{1}}中。
因此,现在/etc/salt/master
运行/srv/salt/top.sls
,它在/srv/formulas/salt-formula-linux/linux/storage/swap.sls
的指导下从/srv/pillar/top.sls
提取一些参数并启用交换文件。