我正在尝试创建一个Chef配方,将多行(20-30)附加到特定的配置文件中.
我知道推荐的模式是更改整个配置文件而不是仅仅附加到文件,但出于多种原因我不喜欢这种方法.
到目前为止,我找到的唯一解决方案是使用a cookbook_file然后使用bash资源来执行:
cat lines_to_append >> /path/configfile
显然这不会正常工作,因为每次运行chef-client时它都会反复追加文件.我必须首先创建一个小的bash脚本来检查特定的字符串,如果没有找到,则附加到该文件.
但这似乎打败了使用Chef的目的.肯定有更好的办法.
一个有希望的解决方案是来自OpsCode社区的系列食谱.它旨在解决这个确切的问题.不幸的是,功能不完整,错误,代码只是一个快速的黑客.远非一个坚实的解决方案.
我评估的另一个选择是augeas.看起来非常强大,但它还为系统添加了另一层抽象.在我的情况下,矫枉过正.
鉴于这是任何系统管理员最明显的任务之一,是否有任何简单而美观的解决方案与厨师,我没有看到?
编辑:这是我到目前为止解决它的方式:
cookbook_file "/tmp/parms_to_append.conf" do
source "parms_to_append.conf"
end
bash "append_to_config" do
user "root"
code <<-EOF
cat /tmp/parms_to_append.conf >> /etc/config
rm /tmp/parms_to_append.conf
EOF
not_if "grep -q MY_IDENTIFIER /etc/config"
end
Run Code Online (Sandbox Code Playgroud)
它有效,但不确定这是推荐的Chef模式.
每次我在 tmux 中更改窗格时,有没有办法自动执行命令?
当然,我可以手动执行它,但我正在尝试自动修复颜色中的故障 [1]。我在 Ubuntu 18.04 上使用 tmux 2.6。
谢谢!
——
[1] 上下文:我根据当前用户自动更改窗格颜色(因此 root 将具有不同的窗格颜色),并根据活动/非活动窗口更改 fg/bg。一切正常,但在某些边缘情况下我需要发出tmux refresh-client. 因此,每次更改窗格时,我都试图让刷新客户端自动运行。