I've written a recipe to install Aegir. I would like to bootstrap a new instance on aws with aegir recipe, The installation goes well but fails to execute "drush hostmaster-install" as it throws "Drupal installation not found" error.
It installs smoothly When i manually go into machine and have a chef-client run with aegir user.
ssh to ec2 with ubuntu user sudo su - aegir sudo chef-client
But the installation is getting failed when i bootstrap new instance with ubuntu user. I appreciate any idea's of switching users to run chef client.
execute "apt-get-update" do
command "sudo apt-get update"
end
%w{curl apache2 php5 libapache2-mod-php5 openssl php-pear php5-cli php5-common php5-curl php5-dev php5-gd php5-imagick
php5-imap php5-intl php5-mcrypt php5-memcache php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-tidy php5-gd
php5-xmlrpc php5-xsl apache2-utils postfix rsync sudo libcurl3 libcurl3-gnutls mysql-client mysql-common}.each do |x|
package x do
action :install
end
end
user "aegir" do
action :create
supports :manage_home => true
comment "aegir User"
home "#{node[:aegir][:dir]}"
shell "/bin/bash"
password "VenEucAf1"
end
group "www-data" do
action :modify
members "aegir"
append true
end
bash "install_mysql" do
user "root"
code /etc/sudoers.d/aegir
chmod 440 /etc/sudoers.d/aegir
EOH
not_if { ::File.exists?("/etc/sudoers.d/aegir") }
end
bash "Install_drush" do
user "root"
cwd "/var/aegir"
code '/var/aegir', 'USER' => 'aegir' })
cwd "#{node[:aegir][:dir]}"
command true, :restart => true, :reload => true
action :start
end
Updated my complete recipe.
Error: User aegir does not exists
Sounds like you might need to set the
HOMEenvironment variable. You can add it to the execute resource: