SaltStack基础(5) – 创建salt state

远程执行给我们省了很多时间,但它有一些不足。你执行的大多数任务是由许多命令,测试和操作组成,每个都有自己细微差别和故障点。通常是尝试把这些命令放到一个shell脚本中,但这很快会变得难管理。
为了解决这个问题,saltstack配置管理让你创建一个称为state的可复用的配置模板,描述把系统组件或应用放进一个已知配置所需的一切。
当你看到state内容,你会觉得这很容易理解。state使用很容易创建和阅读的YAML描述。
为了简化操作,我们的Vagrant文件映射salt master的/srv/salt目录到本地的salt-vagrant-demo-master/saltstack/salt目录。意味着你只需要修改本地的salt文件,它就会同步到salt master。
使用文本编辑器创建一个文件并添加如下行:

  1. install_network_packages:
  2.   pkg.installed:
  3.     - pkgs:
  4.       - rsync
  5.       - lftp
  6.       - curl

state调用pkg.installed state函数,传入pkgs参数的三个软件包名称。
把这个文件保存到salt-vagrant-demo-master/saltstack/salt/nettools.sls
让我们测试继续state。下一篇文章我们将会学习应用state更强大的方法,称为highstate,但现在我们可以使用state.apply来直接从命令行应用state。
在salt master的命令行下应用nettools state:

  1. salt 'minion2' state.apply nettools
  2. #state.apply was added in 2015.5, so if you are using an earlier version call state.sls instead.

如果一切正常,将输出类似的结果。

如果再次执行同一个命令,将输出:

Salt确定系统已经处于正确的状态,所以没有什么改变。

标签:SaltStack 发布于:2019-11-20 16:29:47