2015-01-15 3 views
0

나는 Aegir를 설치하기위한 제조법을 작성했습니다. 나는 aegir 제조법으로 aws에 새로운 인스턴스를 부트 스트랩하고 싶습니다. 설치는 잘되지만 "Drupal 설치를 찾을 수 없습니다"오류가 발생하여 "drush hostmaster-install"을 실행하지 못합니다.부트 스트랩 중 chef-client 사용자 전환

부드럽게 설치합니다. 수동으로 기계에 들어가서 요리사 클라이언트를 aegir 사용자와 함께 실행하십시오.

 
ssh to ec2 with ubuntu user 
sudo su - aegir 
sudo 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 

내 완전 제조법이 업데이트되었습니다.

오류 : 사용자이지 어하지 당신이 HOME 환경 변수를 설정해야 할 수도 있습니다처럼

답변

0

이 소리 존재 않습니다. 실행 자원에 추가 할 수 있습니다 :

execute 'drush hostmaster-install' do 
    user 'aegir' 
    environment 'HOME' => '/home/whatever' 
end 
+0

동일한 bash 스크립트 설치 aegir에서 활성화 시켰습니다. 떠들썩한 파티 \t 사용자 "이지 어"를 수행 \t 기 "WWW-데이터」 「이지 어 설치" \t 환경 ({ '홈'=> "# {노드 [:이지 어] : DIR]}"}) CWD "# {node [: aegir] [: dir]} " \t 코드 <<-EOH –

+0

그런 다음 다른 환경 변수를 확인하십시오. – coderanger

+0

@SwaroopKundeti 실행 리소스에'user "aegir"속성이 있습니까? (만약 그렇다면, 스크립트는이 사용자와 함께 시작되어야하지만, 수동 테스트를 위해'su -'를 수행 할 때 우리는 추측 할 수없는 다른 env 변수를로드 할 수 있습니다. (좋은 테스트는' sudo su -u aegir sudo chef-client') – Tensibai