小编Cha*_*ffy的帖子

使用复杂参数形式将自由形式的命令传递给 Ansible

我正在使用以编程方式生成的 Ansible 剧本。一般来说,因为 playbook 只是 YAML,所以这很简单。但是,当使用“简单”key=value形式时,剧本不是纯粹的shlexYAML——它们包含嵌入可解析形式的内容。

为了避免这种形式的歧义(该key=value配对是命令的参数还是 ansible 的参数?),并且只有一种格式可以解析和生成,我无条件地使用ansible 中示例演示的复杂 args 机制-示例存储库

这使用以下类型的语法:

action: module-name
args:
  key1: value1
  key2: value2
Run Code Online (Sandbox Code Playgroud)

......这很好。但是,当尝试将这种形式用于shellorcommand模块(其文档将实际命令描述为在名为 的参数中传递free_form)时,这不能很好地工作:

action: shell
args:
  free_form: echo hello_world >/tmp/something
  creates: /tmp/something
Run Code Online (Sandbox Code Playgroud)

调用时,它运行以下内容:

/bin/sh -c " free_form='echo hello_world >/tmp/something'  "
Run Code Online (Sandbox Code Playgroud)

......这不是我想要完成的。

使用纯 YAML 语法使用采用“自由格式”命令的 Ansible 模块的正确方法是什么?

ansible

9
推荐指数
1
解决办法
1万
查看次数

如何检查是否设置了启动服务的 OS X“禁用”标志?

根据launchctl(强调我的)手册页:

   -w 覆盖 Disabled 键并将其设置为 false。在以前的版本中,此选项会修改配置文件。现在禁用密钥的状态存储在磁盘上的其他地方。

由于禁用标志的当前状态不再在.plist文件本身中设置,因此检查Disabled密钥不再是判断服务是否会在下次启动时运行的准确方法。

这个“磁盘上的其他地方”在哪里?更重要的是(更重要的是),如何检查是否设置了此标志?

另外,是否可以将服务设置为在下次启动时运行而不强制它立即启动(如launchctl load -w /Library/LaunchDaemons/my-service.plist)?

mac-osx launchd

8
推荐指数
1
解决办法
5060
查看次数

在 Mac OS X 上定义持久静态路由

如何在 MacOS X 上定义一条通过重启持续存在的静态路由?我在谷歌上找到的唯一建议是设置一个启动服务以在启动时运行,这似乎是一个可怕的黑客(例如,它是否可以在不重启的情况下在网络重启后幸存下来?)

要设置我临时需要的路线,我可以运行以下命令:

route add -net ${network} ${gateway} ${netmask}
Run Code Online (Sandbox Code Playgroud)

我将如何使这种情况持续下去?

networking mac-osx

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

mac-osx ×2

ansible ×1

launchd ×1

networking ×1