Tuurlijk / TYPO3.Homestead

One-stop Neos and TYPO3 development and review environment. Effortlessly test one site against multiple PHP versions and hhvm.
99 stars 17 forks source link

Running ansible-galaxy install on requirements.yml produces a series of "sorry, <module> was not found on galaxy.ansible.com" #11

Closed ulrikkold closed 9 years ago

ulrikkold commented 9 years ago

My version of ansible is 1.5.4 (on Ubuntu). It seems the use of a YAML-file to declare roles is not possible until 1.8+ (according to this thread anyway: https://github.com/osxc/starter/issues/4). You might want to make a note in the README about this.

The solution: Strip the requirements.yml down to only contain one module name on each line. Like this:

$> cat requirements.yml nbz4live.php-fpm jdauphant.nginx tersmitten.composer laggyluke.nodejs f500.memcached

Tuurlijk commented 9 years ago

Thx.

Fixed in https://github.com/Tuurlijk/TYPO3.Homestead/commit/7546105b45f1fd5465a440e0938cf7b29143c269

ulrikkold commented 9 years ago

I have to follow up on this issue: It seems there is more than one problem with using an older version of Ansible (I used 1.5.4 - now I upgraded to 1.7+ from the Ubuntu PPA):

The installed Ansible roles in /etc/default/ansible/roles had the names from the requirements_pre.yml file: nbz4live.php-fpm and NOT the expected php-fpm. This is also the case with the rest of the roles and it gave problems ansible tried to find the roles.

After renaming the global roles, I tried to run vagrant provision again and ran into another issue:

==> default: Running provisioner: ansible...
PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --private-key=/home/uhk/Projects/TYPO3.Homestead/.vagrant/machines/default/virtualbox/private_key --user=vagrant --connection=ssh --limit='all' --inventory-file=/home/uhk/Projects/TYPO3.Homestead/.vagrant/provisioners/ansible/inventory --extra-vars={"ansible_ssh_user":"vagrant","hostname":"local.typo3.org"} site.yml
ERROR: replace is not a legal parameter in an Ansible task or handler
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

After that I decided to look for an upgraded version of Ansible. I installed 1.7+ from the Ubuntu PPA and decided to help others with the same issue: Could you update the docs to say something about minimum requirements for Ansible is (probably) v1.7?

Tuurlijk commented 9 years ago

The only occurrence of 'replace' seems to be in the zsh configuration. Replace was introduced in ansible 1.6. I'll see if I can change that to a lineinfile action.

Tuurlijk commented 9 years ago

Can you please test if https://github.com/Tuurlijk/TYPO3.Homestead/commit/bd2e8f31a78bf0a46e6447f2ef68244a99a928ec fixes things for you? Can you then use the default Ubuntu ansible?

ulrikkold commented 9 years ago

I'll take a look at it and see if I can use Ansible from the Ubuntu repos - not today though.

Tuurlijk commented 9 years ago

Any news here? ;-)

ulrikkold commented 9 years ago

I am testing right now with ansible v1.5.4. I will test the latest updates afterwards.

ulrikkold commented 9 years ago

The above problem with zsh has apparently disappeared when using ansible 1.5.4.

I got another error - but I trust that's a problem with the remote server and not with the playbooks:

TASK: [phpcommon | Add PackageCloud repo key] ***** failed: [default] => {"failed": true, "item": ""} msg: Failed to validate the SSL certificate for packagecloud.io:443. Use validate_certs=no or make sure your managed systems have a valid CA certificate installed. Paths checked for this platform: /etc/ssl/certs, /etc/pki/ca-trust/extracted/pem, /etc/pki/tls/certs, /usr/share/ca-certificates/cacert.org, /etc/ansible

I guess you can close this issue now.

Tuurlijk commented 9 years ago

Packagecloud.io cert is valid until 2016. Is your date and time in your vagrant box set-up correctly?

You can disable zsh when adding the following snippet to one of the files in Configuration/

homestead:
  update_cache: yes
  cache_valid_time: 3600
  upgrade_packages: yes
  use_zsh: no