[英]Test Kitchen - How can I pass the local user login in as a Chef attribute?
我們的開發環境包括本地VM,這些VM運行對雲中更大的共享資源的查詢。
它的設置方式是將本地用戶的登錄名作為屬性傳遞給Chef角色,該屬性用於定義SSH和DB連接。
當前,我們在Vagrantfile中使用Ruby提取登錄名,並使用vm.provision在來賓VM的文件系統上創建/ tmp文件。 我們對本地VM的Chef角色讀取該文件的內容,並將該值傳遞到屬性中。
Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
(snip)
require 'etc'
user = Etc.getlogin
(snip)
analytics.vm.provision :shell, inline: "echo #{user} > /tmp/remote_user"
在Chef運行期間,以下內容將讀取/ tmp / remote_user的內容:
remote_user = File.open("/tmp/remote_user", "r").read.strip
sandbox = "_#{remote_user}"
default_attributes "remote_user" => remote_user,
"sandbox" => sandbox,
有沒有更好的方法將當前用戶的登錄名作為屬性添加到本地Chef運行?
如果沒有,我如何在.kitchen.yml中復制舊Vagrantfile中具有的功能?
Test Kitchen通過ERB處理.kitchen.yml
,因此您只需在ERB文件中輸入以下內容即可:
attributes:
foo: <%= ENV['STUFF'] %>
然后node['foo']
將包含$STUFF
。 根據您的情況將STUFF切換為USER。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.