Oh, the role name mismatch between what is in deploy.yml and the following filenames (deploy-projectA vs projectA) really is just a typo (doh).
Tom On 29 September 2014 17:13, Tom Bamford <[email protected]> wrote: > Hi all > > I'm running from HEAD (recently ran 'git pull --rebase && git submodule > update --init --recursive' following recent restructuring). > > Unfortunately I can't tell which commit I was previously running from, but > I currently have an issue with the value of a variable being used from a > different role. > > I have the following structure. Real repository details are substituted > for privacy but I have been careful to preserve the alphanumerical order of > the project names. > > *deploy.yml* > > - name: Configure instance(s) and deploy application > hosts: launch > user: root > gather_facts: true > > roles: > > - role: deploy-projectB > tags: deploy > when: project == 'projectB' or project == 'subprojectB' > > - role: deploy-projectA > tags: deploy > when: project == 'projectA' > > *roles/projectB/tasks/main.yml* > > - name: what repo url and dir are we cloning? > debug: msg="repo_url={{ repo_url }} repo_dir={{ repo_dir }}" > > - name: Git clone > git: repo={{ repo_url }} > dest={{ repo_dir }} > version={{ repo_branch }} > accept_hostkey=yes > > *roles/projectB/vars/main.yml* > > repo_url: ssh://[email protected]/myorg/projectB.git > repo_dir: /usr/local/projectB/ > > *roles/projectA/vars.yml* > > repo_url: ssh://[email protected]/myorg/projectA.git > repo_dir: /usr/local/projectA/ > > > Now, when running the following: ansible-playbook -vvvv deploy.yml -e > 'project=projectB repo_branch=feature/blah' > > I get the following output and error when the projectB role is being > applied (the error is because the origin/feature/blah branch doesn't exist > on the projectA repo) > > TASK: [deploy-system | what is going on?] > ************************************* > <ec2-54-183-209-28.us-west-1.compute.amazonaws.com> ESTABLISH CONNECTION > FOR USER: root > ok: [ec2-54-183-209-28.us-west-1.compute.amazonaws.com] => { > "msg": "repo_branch=feature/blah repo_url=ssh:// > [email protected]/myorg/projectA.git repo_dir=/usr/local/projectA/" > } > > TASK: [deploy-system | Git clone] > ********************************************* > <ec2-54-183-209-28.us-west-1.compute.amazonaws.com> ESTABLISH CONNECTION > FOR USER: root > <ec2-54-183-209-28.us-west-1.compute.amazonaws.com> REMOTE_MODULE git > repo=ssh:********@github.com/myorg/projectA.git dest=/usr/local/projectA/ > version=feature/blah accept_hostkey=yes > <ec2-54-183-209-28.us-west-1.compute.amazonaws.com> EXEC ssh -C -tt -vvv > -o ControlMaster=auto -o ControlPersist=60s -o > ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r -o > StrictHostKeyChecking=no -o Port=22 -o IdentityFile="/root/.ssh/id_rsa" -o > KbdInteractiveAuthentication=no -o > PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey > -o PasswordAuthentication=no -o ConnectTimeout=10 > ec2-54-183-209-28.us-west-1.compute.amazonaws.com /bin/sh -c 'mkdir -p > $HOME/.ansible/tmp/ansible-tmp-1412002786.78-203481241742422 && echo > $HOME/.ansible/tmp/ansible-tmp-1412002786.78-203481241742422' > <ec2-54-183-209-28.us-west-1.compute.amazonaws.com> PUT /tmp/tmpAAFWjp TO > /root/.ansible/tmp/ansible-tmp-1412002786.78-203481241742422/git > <ec2-54-183-209-28.us-west-1.compute.amazonaws.com> EXEC ssh -C -tt -vvv > -o ControlMaster=auto -o ControlPersist=60s -o > ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r -o > StrictHostKeyChecking=no -o Port=22 -o IdentityFile="/root/.ssh/id_rsa" -o > KbdInteractiveAuthentication=no -o > PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey > -o PasswordAuthentication=no -o ConnectTimeout=10 > ec2-54-183-209-28.us-west-1.compute.amazonaws.com /bin/sh -c > 'LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python2 > /root/.ansible/tmp/ansible-tmp-1412002786.78-203481241742422/git; rm -rf > /root/.ansible/tmp/ansible-tmp-1412002786.78-203481241742422/ >/dev/null > 2>&1' > failed: [ec2-54-183-209-28.us-west-1.compute.amazonaws.com] => {"failed": > true} > msg: Failed to checkout feature/blah > > FATAL: all hosts have already failed -- aborting > > As you can see, the {{ repo_url }} and {{ repo_dir }} variables from > projectA are being incorrectly used when applying the projectB role. This > was behaving as expected* when running from an [unknown] earlier commit of > ansible so I think it was introduced recently. > > * Expected behaviour would be to use the variables from > projectB/vars/main.yml > > I have ensured that manually performing a git clone and git checkout does > really work with the correct details. > > Thanks in advance for any input or clarification on what I may have > missed, or if it is indeed a bug. > > -- > Tom Bamford > > *@Planet* > ATPLANET (Pty) Ltd > atplanet.co.za > > Cell: +27 (0)79-095-7112 > Fax: +27 (0)86-599-1310 > -- Tom Bamford *@Planet* ATPLANET (Pty) Ltd atplanet.co.za Cell: +27 (0)79-095-7112 Fax: +27 (0)86-599-1310 -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAAnNz0OktaAsBjWO9UoB%3Dnkxqa4x9cus9c3imvRUNHeOxC5hgQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
