0

我写了一个安装 Aegir 的方法。我想使用 aegir 配方在 aws 上引导一个新实例,安装顺利,但无法执行“drush hostmaster-install”,因为它抛出“Drupal 安装未找到”错误。

当我手动进入机器并让厨师客户端与 aegir 用户一起运行时,它安装顺利。

使用 ubuntu 用户 ssh 到 ec2
sudo su - aegir
须藤厨师客户

但是当我用 ubuntu 用户引导新实例时,安装失败了。我很欣赏任何将用户切换到运行厨师客户端的想法。

执行“apt-get-update”做
  命令“sudo apt-get 更新”
结尾

%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|
    包 x 做
        行动:安装
    结尾
结尾

用户“aegir”做
    动作:创建
    支持:manage_home => true
    评论“aegir 用户”
    主页 "#{node[:aegir][:dir]}"
    外壳“/bin/bash”
    密码“VenEucAf1”
结尾

组“www-data”做
    行动:修改
    成员“aegir”
    追加真
结尾

bash“install_mysql”做
    用户“根”
    代码 /etc/sudoers.d/aegir
    chmod 440 /etc/sudoers.d/aegir
    EOH
    not_if { ::File.exists?("/etc/sudoers.d/aegir") }
结尾


bash“Install_drush”做
    用户“根”
    cwd "/var/aegir"
    代码 '/var/aegir', 'USER' => 'aegir' })
        cwd "#{node[:aegir][:dir]}"
    命令为真,:restart => 真,:reload => 真
    行动:开始
结尾

更新了我的完整食谱。

错误:用户 aegir 不存在

4

1 回答 1

0

听起来您可能需要设置HOME环境变量。您可以将其添加到执行资源:

execute 'drush hostmaster-install' do
  user 'aegir'
  environment 'HOME' => '/home/whatever'
end
于 2015-01-15T19:12:49.470 回答