36.13. Using Ansible to ensure an IdM user is present in an ID view with a specific UID
If you are working in a lab where you have our own computer but your /home/ directory is in a shared drive exported by a server, you can have two users:
- One that is system-wide user, stored centrally in Identity Management (IdM).
- One whose account is local, that is stored on the system in question.
If you need to have full access to your files whether you are logged in as an IdM user or as a local user, you can do so by giving both users the same UID.
Complete this procedure to use the ansible-freeipa idoverrideuser module to:
- Apply an ID view to host01 named idview_for_host01.
-
Ensure, in idview_for_host01, the presence of a user ID override for idm_user with the
UIDof 20001.
Prerequisites
You have configured your Ansible control node to meet the following requirements:
- You are using Ansible version 2.15 or later.
-
You have installed the
ansible-freeipapackage. - The example assumes that in the ~/MyPlaybooks/ directory, you have created an Ansible inventory file with the fully-qualified domain name (FQDN) of the IdM server.
-
The example assumes that the secret.yml Ansible vault stores your
ipaadmin_passwordand that you have access to a file that stores the password protecting the secret.yml file.
-
The target node, that is the node on which the
freeipa.ansible_freeipamodule is executed, is part of the IdM domain as an IdM client, server or replica.+
---
- name: Ensure both local user and IdM user have access to same files
hosts: ipaserver
become: false
gather_facts: false
tasks:
- name: Ensure idview_for_host1 is applied to host1.idm.example.com
ipaidview:
ipaadmin_password: "{{ ipaadmin_password }}"
name: *idview_for_host01*
host: *host1.idm.example.com*
- name: Ensure idmuser is present in idview_for_host01 with the UID of 20001
ipaidoverrideuser:
ipaadmin_password: "{{ ipaadmin_password }}"
idview: *idview_for_host01*
anchor: *idm_user*
UID: 20001
+ . Save the file.
+ . Run the playbook. Specify the playbook file, the file storing the password protecting the secret.yml file, and the inventory file:
+
$ ansible-playbook --vault-password-file=password_file -v -i inventory ensure-idmuser-and-local-user-have-access-to-same-files.yml