vagrant puppet,composer 无法安装 laravel

vagrant puppet, composer unable to install laravel

我最近才知道 puppet,我正在尝试安装 laravel,而 vagrant 正在配置,以便一切都已经设置好(可以 运行 laravel)我登录 in/ssh 到 vagrant。但是我卡住了,它返回 successfully executed 但是在我执行 vagrant ssh 之后,laravel 命令不可用。

php5、php5-cli等,在这部分代码之前已经安装了composer和其他依赖。

class laravel {

    Exec {
        path => "/bin:/sbin:/usr/bin:/usr/sbin",
    }

    exec { "install-laravel" :
        command     => "/usr/local/bin/composer global require 'laravel/installer'",
        require     => [Package["php5-cli", "php5-dev"], Exec["install-composer", "set-composer-as-global"]],
        cwd         => "/home/vagrant/",
        environment => ["COMPOSER_HOME=/home/vagrant"],
        user        => root, 
        group       => root,
    }

    exec { "add-laravel-command" :
        command     => "mkdir /usr/local/bin/laravel",
        environment => ["LARAVEL_HOME=/home/vagrant"],
        onlyif      => "test -d /usr/local/bin/composer",
        require     => Exec["install-laravel"],
        user        => root, 
    }

    exec { "set-laravel-as-globall" :
        command     => "mv /home/vagrant/.composer/vendor/bin /usr/local/bin/laravel",
        onlyif      => "test -d /.composer/vendor/bin",
        require     => Exec["add-laravel-command"],
        user        => root, 
    }
}

输出

==> default: Notice: /Stage[main]/Laravel/Exec[install-laravel]/returns: executed successfully
==> default: Debug: /Stage[main]/Laravel/Exec[install-laravel]: The container Class[Laravel] will propagate my refresh event
==> default: Debug: Exec[add-laravel-command](provider=posix): Executing check 'test -d /usr/local/bin/composer'
==> default: Debug: Executing 'test -d /usr/local/bin/composer'
==> default: Debug: Exec[set-laravel-as-globall](provider=posix): Executing check 'test -d /.composer/vendor/bin'
==> default: Debug: Executing 'test -d /.composer/vendor/bin'
==> default: Debug: Class[Laravel]: The container Stage[main] will propagate my refresh event

如有任何帮助,我们将不胜感激。谢谢

puppet/modules/laravel/files下创建文件并命名为composer.json,内容如下

{                                            
    "require": {                             
        "laravel/installer": "^1.3"          
    }                                        
}

Laravel init.pp 文件

class laravel {

    Exec {
        path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin",
        user => root,
        group => root,
    }

    file { "/usr/local/bin/laravel-devtools" :
        ensure  => directory,
        owner   => root,
        group   => root,
    }

    file { "/usr/local/bin/laravel-devtools/composer.json" :
        source  => "puppet:///modules/laravel/composer.json",
        require => File["/usr/local/bin/laravel-devtools"],
        owner   => root,
        group   => root,
    }

    exec { "install-laravel" :
        command     => "sudo composer require 'laravel/installer'",
        onlyif      => "test -f /usr/local/bin/composer",
        require     => [
            Package["nginx","php5-cli", "php5-dev", "php5-mysql"], 
            File["/usr/local/bin/laravel-devtools", "/usr/local/bin/laravel-devtools"],
        ],
        environment => ["COMPOSER_HOME=/home/vagrant"],
        cwd         => "/usr/local/bin/laravel-devtools", 
        user        => root, 
        group       => root,
    }

    exec { "set-laravel-as-global" :
        command => "sudo ln -s /usr/local/bin/laravel-devtools/vendor/laravel/installer/laravel /usr/local/bin/laravel",
        require => [
            File["/usr/local/bin/laravel-devtools", "/usr/local/bin/laravel-devtools/composer.json"],
            Exec["install-laravel"],
        ],
    }

}

确保在提供期间首先安装 composer