मैं उपयोगकर्ता को विभिन्न प्रकार के सर्वरों में जोड़ने के लिए उत्तरदायी उपयोग कर रहा हूं। कुछ सर्वरों में अलग-अलग यूनिक्स समूह परिभाषित किए गए हैं। मैं निर्दिष्ट समूह के अस्तित्व की जांच करने के लिए उत्तरदायी के लिए एक रास्ता खोजना चाहता हूं, और यदि वह समूह मौजूद है, तो इसे उपयोगकर्ता की द्वितीयक समूह सूची में जोड़ें (लेकिन यदि समूह मौजूद नहीं है तो कथन को अनदेखा करें)।उत्तर: यूनिक्स समूह को केवल उपयोगकर्ता के लिए जोड़ें यदि समूह मौजूद है
कोई विचार क्या मैं उत्तर के साथ ऐसा कर सकता हूं?
मेरा प्रारंभिक बिंदु यहां है।
कमान
ansible-playbook -i 'localhost,' -c local ansible_user.yml
ansible_user.yml
---
- hosts: all
user: root
become: yes
vars:
password: "!"
user: testa
tasks:
- name: add user
user: name="{{user}}"
state=present
password="{{password}}"
shell=/bin/bash
append=yes
comment="test User"
अपडेट किया गया: समाधान @udondan द्वारा सुझाए गए आधार पर, मैं निम्नलिखित अतिरिक्त के साथ इस काम कर पाने में सक्षम था कार्य।
- name: Check if user exists
shell: /usr/bin/getent group | awk -F":" '{print $1}'
register: etc_groups
- name: Add secondary Groups to user
user: name="{{user}}" groups="{{item}}" append=yes
when: '"{{item}}" in etc_groups.stdout_lines'
with_items:
- sudo
- wheel
समूहों> = 7.0 पर आदेश जोड़ना चाहते हैं जब Red Hat और दोस्तों/etc/समूहों में सभी समूहों को मुद्रित नहीं करते हैं। यह केवल उन मौजूदा समूहों को मुद्रित करता है जिनमें वर्तमान उपयोगकर्ता है। –
उबंटू 16.04 पर, "समूह ..." कमांड केवल उन समूहों को प्रिंट करता है जो मौजूदा उपयोगकर्ता – mykola
से संबंधित हैं, आपको इस उदाहरण में एक अलग चर पंजीकृत करने की आवश्यकता है क्योंकि "समूह" एक है उत्तरदायी आरक्षित चर: - https://github.com/lorin/ansible-quickref – gilesw