While I'm learning Ansible, I started on my first role, which is to do a 
simple sudo apt-get update and upgrade. 

As a flat file, this works:

---
- hosts: testing
  remote_user: deploy
  become: yes

  tasks:
  - name: run apt-get update
    apt: update_cache=yes
  - name: run apt-get upgrade
    apt: upgrade=yes


However, some of my hosts have different logins or passwords or both, so 
I'm using group_vars to include the passwords**.  I'm wondering how to 
properly set up my group_vars (most likely the incorrect one). Right now, 
when I run it, it fails after connecting, saying "failed to lock apt for 
exclusive operation" on the tasks.

Here's my *site.yml* (right now I have it on one group, vs all of them)

- name: apply common configuration to all nodes
  hosts: testing
  become: yes
  
  roles:
    - ubuntu-apt

And here's my */tasks/main.yml*

---
- name: run apt-get update
  apt: update_cache=yes
- name: run apt-get upgrade
  apt: upgrade=yes

I've got group_vars for the testing group in */group_vars/testing/test.yml*

---
ansible_ssh_user: deploy
ansible_become_user: deploy
ansible_become_pass: some_passw0rd

User deploy is in the sudoers group already, and like I mentioned above, it 
works when I run it as a single playbook. But because I want to have all my 
hosts with all their different login/passwords checked, I moved to using 
roles. I'm not quite sure where I've broken things.

In my site.yml file, I can't put remote_user: deploy since some of my 
logins aren't deploy and can be root or something else.  I understand that 
the error I've received was because of not having sudo access, but isn't 
that what ansible_become_pass (aka ansible_sudo_pass) is for?

Here's the relevant output when I do ansible-playbook -i hosts site.yml 
-vvvv

<baseimage> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o 
ControlPath="/Users/risa/.ansible/cp/ansible-ssh-%h-%p-%r" -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=deploy -o ConnectTimeout=10 baseimage 
/bin/sh -c 'chmod a+r /tmp/ansible-tmp-1445020605.45-256546847307774/apt'
<baseimage> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o 
ControlPersist=60s -o 
ControlPath="/Users/risa/.ansible/cp/ansible-ssh-%h-%p-%r" -o 
KbdInteractiveAuthentication=no -o 
PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey 
-o PasswordAuthentication=no -o User=deploy -o ConnectTimeout=10 baseimage 
/bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via ansible, 
key=jkqtlmxhqvdyjguroyvjmfrroutwtnof] password: " -u deploy /bin/sh -c 
'"'"'echo BECOME-SUCCESS-jkqtlmxhqvdyjguroyvjmfrroutwtnof; LANG=en_US.UTF-8 
LC_CTYPE=en_US.UTF-8 /usr/bin/python 
/tmp/ansible-tmp-1445020605.45-256546847307774/apt'"'"''

failed: [baseimage] => {"failed": true, "parsed": false}
BECOME-SUCCESS-jkqtlmxhqvdyjguroyvjmfrroutwtnof
Traceback (most recent call last):
  File "/tmp/ansible-tmp-1445020605.45-256546847307774/apt", line 2258, in 
<module>
    main()
  File "/tmp/ansible-tmp-1445020605.45-256546847307774/apt", line 554, in 
main
    cache = apt.Cache()
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 107, in 
__init__
    self.open(progress)
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 155, in open
    self._list.read_main_list()
SystemError: E:Opening /etc/apt/sources.list.d/passenger.list - 
ifstream::ifstream (13: Permission denied)
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/rbatta/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_client_request_alive: done pid = 1553
debug3: mux_client_request_session: session request sent
debug1: mux_client_request_session: master session id: 4
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: Received exit status from master 1

>From what I can tell, it's looking like my sudo password was passed 
through, but still saying permission denied?

**Note: I'm not worried about the passwords thing, since this is all 
testing and isn't being checked into any repo.  Once I get this going, I 
can look into the vault thing, but I want to get this working first.

-- 
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/05832760-f75f-4eb5-b84b-72ee33793b89%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to