wesleytodd / YeoPress

A Yeoman generator for WordPress
Other
1.08k stars 163 forks source link

in vagrant, installing nodejs through puppet fails #100

Closed bewresu closed 9 years ago

bewresu commented 10 years ago

I'm trying this out with the --advanced flag and when provisioning vagrant I can't get past this roadblock:

err: /Stage[main]/Nodejs/Exec[clone-node-repo]/returns: change from notrun to 0 failed: Command exceeded timeout at /tmp/vagrant-puppet-1/modules-0/nodejs/manifests/init.pp:12

Other times it's this:

err: /Stage[main]/Nodejs/Exec[clone-node-repo]/returns: change from notrun to 0 failed: git clone https://github.com/joyent/node.git node-source returned 128 instead of one of [0] at /tmp/vagrant-puppet-1/modules-0/nodejs/manifests/init.pp:12

Both cases if I confirm with vagrant ssh it seems nodejs repo was cloned properly, and I was in fact able to sudo make install it manually from the cloned source.

After some searching, it seems it's a puppet issue related to this: https://github.com/alup/puppet-rbenv/issues/14

It must be noted that I installed vagrant-hostsupdater (https://github.com/cogitatio/vagrant-hostsupdater) and that I also have these modifications in my Vagrantfile, to solve other issues:

  # fix stdin: is not a tty (https://github.com/mitchellh/vagrant/issues/1673)
  config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"

  # fix warning: Could not retrieve fact fqdn (http://blog.doismellburning.co.uk/2013/01/19/upgrading-puppet-in-vagrant-boxes/)
  config.vm.hostname = "www.myactualsite.domain"

    #vagrant-hostsupdater plugin automatically update /etc/hosts
    config.vm.network :private_network, ip: "192.168.50.4"
    config.hostsupdater.aliases = ["myactualsite.domain"]
    config.hostsupdater.remove_on_suspend = true

These are all new to me, but I'm putting this here so others can confirm if it happens to them as well. As for me, as of the moment I'll just move on after installing nodejs manually.

wesleytodd commented 10 years ago

Is this still an issue?

gustavjf commented 10 years ago

Yes, I am having the same problem along with a mysql error:

OSX 10.8.5 Vagrant 1.6.3

==> default: Running provisioner: shell...
    default: Running: inline script
==> default: stdin: is not a tty
==> default: America/Chicago
==> default: Current default time zone: 'America/Chicago'
==> default: Local time is now:      Fri Jul  4 17:33:48 CDT 2014.
==> default: Universal Time is now:  Fri Jul  4 22:33:48 UTC 2014.
==> default: Running provisioner: puppet...
==> default: Running Puppet with default.pp...
==> default: stdin: is not a tty
==> default: warning: Could not retrieve fact fqdn
==> default: notice: /Stage[main]//Exec[apt-get update]/returns: executed successfully
==> default: notice: /Stage[main]//Apache::Vhost[localhost]/File[/home/vagrant/www]/owner: owner changed 'vagrant' to 'root'
==> default: notice: /Stage[main]//Apache::Vhost[localhost]/File[/home/vagrant/www]/group: group changed 'vagrant' to 'root'
==> default: notice: /Stage[main]/Mysql::Config/Exec[set_mysql_rootpw]/returns: mysqladmin: connect to server at 'localhost' failed
==> default: notice: /Stage[main]/Mysql::Config/Exec[set_mysql_rootpw]/returns: error: 'Access denied for user 'root'@'localhost' (using password: YES)'
==> default: err: /Stage[main]/Mysql::Config/Exec[set_mysql_rootpw]/returns: change from notrun to 0 failed: mysqladmin -u root  password 'yeopress' returned 1 instead of one of [0] at /tmp/vagrant-puppet-3/modules-0/mysql/manifests/config.pp:184
==> default: notice: /Stage[main]/Mysql::Config/File[/root/.my.cnf]: Dependency Exec[set_mysql_rootpw] has failures: true
==> default: warning: /Stage[main]/Mysql::Config/File[/root/.my.cnf]: Skipping because of failed dependencies
==> default: notice: /Stage[main]/Mysql::Config/Exec[mysqld-restart]: Dependency Exec[set_mysql_rootpw] has failures: true
==> default: warning: /Stage[main]/Mysql::Config/Exec[mysqld-restart]: Skipping because of failed dependencies
==> default: err: /Stage[main]/Nodejs/Exec[clone-node-repo]/returns: change from notrun to 0 failed: git clone https://github.com/joyent/node.git node-source returned 128 instead of one of [0] at /tmp/vagrant-puppet-3/modules-0/nodejs/manifests/init.pp:12
==> default: notice: /Stage[main]/Nodejs/Exec[checkout-node-version]: Dependency Exec[clone-node-repo] has failures: true
==> default: warning: /Stage[main]/Nodejs/Exec[checkout-node-version]: Skipping because of failed dependencies
==> default: notice: /Stage[main]/Nodejs/Exec[configure-node]: Dependency Exec[clone-node-repo] has failures: true
==> default: warning: /Stage[main]/Nodejs/Exec[configure-node]: Skipping because of failed dependencies
==> default: notice: /Stage[main]/Nodejs/Exec[make-node]: Dependency Exec[clone-node-repo] has failures: true
==> default: warning: /Stage[main]/Nodejs/Exec[make-node]: Skipping because of failed dependencies
==> default: notice: /Stage[main]/Nodejs/Exec[make-install-node]: Dependency Exec[clone-node-repo] has failures: true
==> default: warning: /Stage[main]/Nodejs/Exec[make-install-node]: Skipping because of failed dependencies
==> default: notice: /Stage[main]//Mysql::Db[lilianafolta]/Database[lilianafolta]: Dependency Exec[set_mysql_rootpw] has failures: true
==> default: warning: /Stage[main]//Mysql::Db[lilianafolta]/Database[lilianafolta]: Skipping because of failed dependencies
==> default: notice: /Stage[main]//Mysql::Db[lilianafolta]/Database_user[root@localhost]: Dependency Exec[set_mysql_rootpw] has failures: true
==> default: warning: /Stage[main]//Mysql::Db[lilianafolta]/Database_user[root@localhost]: Skipping because of failed dependencies
==> default: err: Could not prefetch database_grant provider 'mysql': Execution of '/usr/bin/mysql --defaults-file=/root/.my.cnf mysql -Be describe user' returned 1: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
==> default: 
==> default: notice: /Stage[main]//Mysql::Db[lilianafolta]/Database_grant[root@localhost/lilianafolta]: Dependency Exec[set_mysql_rootpw] has failures: true
==> default: warning: /Stage[main]//Mysql::Db[lilianafolta]/Database_grant[root@localhost/lilianafolta]: Skipping because of failed dependencies
==> default: notice: Finished catalog run in 12.43 seconds
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
puppet apply --modulepath '/tmp/vagrant-puppet-3/modules-0:/etc/puppet/modules' --manifestdir /tmp/vagrant-puppet-3/manifests --detailed-exitcodes /tmp/vagrant-puppet-3/manifests/default.pp
Stdout from the command:
warning: Could not retrieve fact fqdn
notice: /Stage[main]//Exec[apt-get update]/returns: executed successfully
notice: /Stage[main]//Apache::Vhost[localhost]/File[/home/vagrant/www]/owner: owner changed 'vagrant' to 'root'
notice: /Stage[main]//Apache::Vhost[localhost]/File[/home/vagrant/www]/group: group changed 'vagrant' to 'root'
notice: /Stage[main]/Mysql::Config/Exec[set_mysql_rootpw]/returns: mysqladmin: connect to server at 'localhost' failed
notice: /Stage[main]/Mysql::Config/Exec[set_mysql_rootpw]/returns: error: 'Access denied for user 'root'@'localhost' (using password: YES)'
err: /Stage[main]/Mysql::Config/Exec[set_mysql_rootpw]/returns: change from notrun to 0 failed: mysqladmin -u root  password 'yeopress' returned 1 instead of one of [0] at /tmp/vagrant-puppet-3/modules-0/mysql/manifests/config.pp:184
notice: /Stage[main]/Mysql::Config/File[/root/.my.cnf]: Dependency Exec[set_mysql_rootpw] has failures: true
warning: /Stage[main]/Mysql::Config/File[/root/.my.cnf]: Skipping because of failed dependencies
notice: /Stage[main]/Mysql::Config/Exec[mysqld-restart]: Dependency Exec[set_mysql_rootpw] has failures: true
warning: /Stage[main]/Mysql::Config/Exec[mysqld-restart]: Skipping because of failed dependencies
err: /Stage[main]/Nodejs/Exec[clone-node-repo]/returns: change from notrun to 0 failed: git clone https://github.com/joyent/node.git node-source returned 128 instead of one of [0] at /tmp/vagrant-puppet-3/modules-0/nodejs/manifests/init.pp:12
notice: /Stage[main]/Nodejs/Exec[checkout-node-version]: Dependency Exec[clone-node-repo] has failures: true
warning: /Stage[main]/Nodejs/Exec[checkout-node-version]: Skipping because of failed dependencies
notice: /Stage[main]/Nodejs/Exec[configure-node]: Dependency Exec[clone-node-repo] has failures: true
warning: /Stage[main]/Nodejs/Exec[configure-node]: Skipping because of failed dependencies
notice: /Stage[main]/Nodejs/Exec[make-node]: Dependency Exec[clone-node-repo] has failures: true
warning: /Stage[main]/Nodejs/Exec[make-node]: Skipping because of failed dependencies
notice: /Stage[main]/Nodejs/Exec[make-install-node]: Dependency Exec[clone-node-repo] has failures: true
warning: /Stage[main]/Nodejs/Exec[make-install-node]: Skipping because of failed dependencies
notice: /Stage[main]//Mysql::Db[lilianafolta]/Database[lilianafolta]: Dependency Exec[set_mysql_rootpw] has failures: true
warning: /Stage[main]//Mysql::Db[lilianafolta]/Database[lilianafolta]: Skipping because of failed dependencies
notice: /Stage[main]//Mysql::Db[lilianafolta]/Database_user[root@localhost]: Dependency Exec[set_mysql_rootpw] has failures: true
warning: /Stage[main]//Mysql::Db[lilianafolta]/Database_user[root@localhost]: Skipping because of failed dependencies
err: Could not prefetch database_grant provider 'mysql': Execution of '/usr/bin/mysql --defaults-file=/root/.my.cnf mysql -Be describe user' returned 1: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
notice: /Stage[main]//Mysql::Db[lilianafolta]/Database_grant[root@localhost/lilianafolta]: Dependency Exec[set_mysql_rootpw] has failures: true
warning: /Stage[main]//Mysql::Db[lilianafolta]/Database_grant[root@localhost/lilianafolta]: Skipping because of failed dependencies
notice: Finished catalog run in 12.43 seconds
Stderr from the command:
stdin: is not a tty

My Yeopress prompt configs are:

[?] WordPress URL: http://lilianafolta.localhost
[?] WordPress Version: 3.9.1
[?] Table prefix: wp_
[?] Database host: localhost
[?] Database name: lilianafolta
[?] Database user: root
[?] Database password: root
[?] Language: 
[?] Use Git? Yes
[?] Would you like to install WordPress as a submodule? Yes
[?] WordPress install directory: cms
[?] WordPress content directory: content
[?] Create local-config.php? No
[?] Block external WP requests? No
[?] Add wp-config.php to .gitignore? Yes
[?] Add WordPress Core files to .gitignore? Yes
[?] Use Vagrant? Yes
[?] Install a custom theme? Yes
[?] Destination directory: yeopress
[?] Theme source type (git/tar) git
[?] GitHub username: wesleytodd
[?] GitHub repository name: YeoPress
[?] Repository branch: template
[?] Does this all look correct? Yes

timiyay commented 10 years ago

I'm also getting this issue, using the same generator params as gustavjf, on OSX Mavericks with Vagrant 1.6.3. Am going to dig around and see if I can figure it out, cos I love me some Vagrant.

UPDATE: this issue remained a problem when I tried to re-provision the VM with vagrant up && vagrant provision.

To solve it, I had to blow away the VM and start again with vagrant destroy && vagrant up --provision. The destroy/provision solution worked every time I tried it, sot it seems reliable.

I guess the original Puppet provisioning got itself into a bind it couldn't recover from? Looked like the cloning of the node Git repo failed, and that caused all other node manifest tasks to fail.

That's the benefit of disposable VM's I guess. Just start again.

wesleytodd commented 9 years ago

So I think we can all agree that Puppet sucks. There are much better provisioning tools out there now, but I do not have the time to update this project. If anyone wants to transition it to Ansible that would be awesome, but until then I think we can close out this issue.