Petr,

I'll augment your example with this behavior. Since you're adding "user 1" 
by it's own when matching all hosts; it kind of takes care of the 
requirement to avoid changing user 1's shell. See below;

==========================

hosts file=============
[group1]
serv1
[group2]
serv2
serv3
==================playbook=================
- hosts: all
vars:
   ssh_users: 
     - "{{user1}}"
roles: 
- users_add

- hosts: group1
vars:
   ssh_users: 
     - "{{user2}}"
     - "{{user3}}"
    
   user_shell:
     - "/bin/special_shell"

roles: 
- users_add


- hosts: group2
vars:
   ssh_users: 
     - "{{user2}}"

roles: 
- users_add

============= vars/all====================
user1:
  - { user: 'user1', uid: '11111' }
user2:
  - { user: 'user2', uid: '11112' }
user3:
  - { user: 'user3', uid: '11113' }
============= role file =====================
- name: Add ssh user
  user: name={{ item.user }} uid={{ item.uid}} shell={{ user_shell | 
default("/bin/bash") }} 
with_items: "ssh_users"
=======================================

+ host group "group1" provides the special shell by setting user_shell 
variable. 
+ user_add attempts to use user_shell var for shell, defaulting to 
"/bin/bash" if not set.


On Thursday, March 27, 2014 11:30:46 AM UTC-5, Petr Sukharev wrote:
>
>
>
> Hello!
> I find some issue and cant resolve it by myself.
> My scenario:
> 3 users, 4 hosts
> I add information about users in file vars/all (like login, uid, comment, 
> group and password) and deploy users via role with variable (user logins) 
> into all hosts
>
> ==========================hosts file=============
> [group1]
> serv1
> [group2]
> serv2
> serv3
> ==================playbook=================
> - hosts: all
> vars:
> ssh_users: 
> - "{{user1}}"
> roles: 
> - users_add
>
> - hosts: group1
> vars:
> ssh_users: 
> - "{{user2}}"
> - "{{user3}}"
> roles: 
> - users_add
>
>
> - hosts: group2
> vars:
> ssh_users: 
> - "{{user2}}"
> roles: 
> - users_add
>
> ============= vars/all====================
> user1:
> - { user: 'user1', uid: '11111' }
> user2:
> - { user: 'user2', uid: '11112' }
> user3:
> - { user: 'user3', uid: '11113' }
> ============= role file =====================
> - name: Add ssh user
> user: name={{ item.user }} uid= {{ item.uid}}
> with_items: "ssh_users"
> =======================================
>
> My question is - how to point special shell value (like /bin/nologin) for 
> users 2 and 3, but not for user 1, and only in host group1
> As you can see - user 1 is like admin for all hosts and group1 - is like 
> special host, where i need to use special shell for all users, but not for 
> admin user
>
> Can you help me, please?
>

-- 
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/691987b0-5d0e-4223-92a1-90b5638269fb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to