我正在写一本将在 Ubuntu 上运行的食谱。它将在默认用户的主目录中创建一个目录。
directory "/home/<default-user>/my-directory" do
owner <default-user>
end
问题是,这个默认用户在不同的环境中是不同的:
- 当使用Vagrant在虚拟机上运行时,它是vagrant。
- 在EC2实例上运行时它是ubuntu 。
解决此类问题的好习惯是什么?怎么做?
谢谢!
我正在写一本将在 Ubuntu 上运行的食谱。它将在默认用户的主目录中创建一个目录。
directory "/home/<default-user>/my-directory" do
owner <default-user>
end
问题是,这个默认用户在不同的环境中是不同的:
解决此类问题的好习惯是什么?怎么做?
谢谢!
使用户成为属性并根据您的环境进行设置。
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.username
:http ://docs-v1.vagrantup.com/v1/docs/config/ssh/username.html