簡體   English   中英

Chef:如何根據環境(Vagrant,EC2)使用不同的OS默認用戶?

[英]Chef: How to use different OS default users based on environment (Vagrant, EC2)?

我正在寫一本可以在Ubuntu上運行的菜譜。 它將在默認用戶的主目錄中創建一個目錄。

directory "/home/<default-user>/my-directory" do
  owner <default-user>
end

問題是,此默認用戶在不同環境中是不同的:

  • 使用流浪的虛擬機上運行時,它是無業游民
  • EC2實例上運行時它是ubuntu

解決此類問題的最佳實踐是什么? 以及如何做?

謝謝!

為用戶設置一個屬性,並根據您的環境進行設置。

directory "/home/#{node[:my_app][:default_user]}/my-directory" do
  owner node[:my_app][:default_user]
end

然后,在您的attributes/default.rb文件上:

default[:my_app][:default_user] = 'ubuntu'

並在您的Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.provision "chef_solo" do |chef|
    # ...

    chef.json = {
      "my_app" => {
        "default_user" => "vagrant"
      }
    }
  end
end

這會將您的默認用戶設置為ubuntu ,但是在Vagrant VM中運行時將被覆蓋。

檢出配置條目config.ssh.usernamehttp : //docs-v1.vagrantup.com/v1/docs/config/ssh/username.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM