bash - 使用 chef 运行 bash passwd
问题描述
我很难弄清楚如何使用 chef 来运行 bash 命令(passwd)
我知道如何设置 bash 资源块,但我如何设置它,以便将变量password = 'abc123'
. 我要为其做的用户就是adminblah
这个例子。
bash 'analytics_password' do
code <<-EOH
sudo passwd adminblah
EOH
end
我不确定如何将密码变量放入其中。
解决方案
有几种方法可以实现设置用户密码。如果您想使用该bash
资源,您可以这样做:
# Backslashes are escaped because of ruby
bash 'analytics_password' do
code <<-EOH
echo -e "#{password}\\n#{password}\\n" | passwd adminblah
EOH
sensitive true
end
如果您在命令行上运行,上面的 echo 复制输入然后确认密码。
您还可以查看 using chpasswd
(如果可用):
bash 'analytics_password' do
code <<-EOH
echo "adminblah:#{password}" | chpasswd
EOH
sensitive true
end
在上述两种情况下,该sensitive
属性都会在 Chef 日志中隐藏任何潜在的密码输出。
推荐阅读
- ios - CollectionView - 将 pdf 文件拖放到 collectionView 上(loadObject(ofClass:) 无法正常工作)
- mysql - 找到具有相似名称的最大值
- python-2.7 - 如何在一定时间间隔后单击 open cv python 中的图像并同时保存固定数量的捕获图像?
- r - 将多个 .csv 文件与 tidyr 函数组合时,需要将部分(或全部)列读取为 .character
- php - phpunit --version 给我 3.7.21。这给我的 laravel 5.6 dump.php 文件带来了问题。检查了关于stackoverflow的其他相关问题
- java - 如何使用 curl 发送列表?
- flutter - Flutter 的 pubspec.yaml 中依赖版本号前的脱字符号 (^) 是什么?
- java - 将圆角应用于 CardView 内部元素
- java - 如何锁定到 viewpager 中的页面?
- c# - 如何从不同的类中选择属性并为其赋值