How do you execute runsetup.yml ? You need to provide the appropriate tag on the command line to tell it which persona to assume.
$ ansible-playbook runsetup.yml -i inventory -t nfs_server $ ansible-playbook runsetup.yml -i inventory -t nfs_client Walter -- Walter Rowe, Division Chief Infrastructure Services, OISM Mobile: 202.355.4123 On Nov 25, 2022, at 5:22 AM, RG <[email protected]<mailto:[email protected]>> wrote: Hi, these are the ansible role config files ansible/runsetup.yml --- - hosts: - cmp become: true tags: - nfs_server roles: - nfs - hosts: - hardware:!cmp - vms become: true tags: - nfs_client roles: - nfs ansible/nfs/tasks/main.yml --- # tasks file for installing nfs - name: configure nfs server include_tasks: nfs_server.yml tags: - nfs_server - name: configure nfs client include_tasks: nfs_client.yml tags: - nfs_client /ansible/nfs/tasks/ nfs_server.yml --- - name: Create shared nfs directory ... - name: Configure /etc/exports ... - name: set symlink /media/nfs-share -> /Data/nfs-share ... - name: set symlink to ansible hosts.ini ... /ansible/nfs/tasks/ nfs_clientym --- - name: Create sharing nfs directory on hosts/guests ... - name: Mounting /media/nfs-share ... This is the ansible console output - all tasks included in nfs_server.yml and nfs_client.yml are exectuted for cmp (server) and then it starts again with nfs_server.yml for top1...(clients) and stops because set symlink cannot be exectuted on clients, which is ok. in this case tagging in roles doesn't work. PLAY [cmp] *************************************************************************************************************************************************************** TASK [Gathering Facts] *************************************************************************************************************************************************** ok: [cmp1] TASK [configure nfs server] ********************************************************************************************************************************************** included: /Data/nfs-share/ansible/nfs/tasks/nfs_server.yml for cmp1 TASK [Create shared nfs directory] *************************************************************************************************************************************** ok: [cmp1] => TASK [nfs : Configure /etc/exports] ************************************************************************************************************************************** ok: [cmp1] => TASK [nfs : Commmand exportfs] ******************************************************************************************************************************************* skipping: [cmp1] => TASK [set symlink /media/nfs-share -> /Data/nfs-share] ******************************************************************************************************************* ok: [cmp1] => TASK [nfs : set symlink to ansible hosts.ini] **************************************************************************************************************************** changed: [cmp1] => TASK [configure nfs client] ********************************************************************************************************************************************** included: /Data/nfs-share/ansible/nfs/tasks/nfs_client.yml for cmp1 TASK [Create sharing nfs directory on hosts/guests] ********************************************************************************************************************** ok: [cmp1] => TASK [Mounting /media/nfs-share] ***************************************************************************************************************************************** changed: [cmp1] => PLAY [hardware:!cmp,vms] ************************************************************************************************************************************************* TASK [Gathering Facts] *************************************************************************************************************************************************** ok: [top1] ... TASK [configure nfs server] ********************************************************************************************************************************************** included: /Data/nfs-share/ansible/nfs/tasks/nfs_server.yml for top1, top2,... TASK [Create shared nfs directory] *************************************************************************************************************************************** changed: [top1] ... TASK [nfs : Configure /etc/exports] ************************************************************************************************************************************** hanged: [top1] => ... TASK [nfs : Commmand exportfs] ******************************************************************************************************************************************* skipping: [top1] ... TASK [set symlink /media/nfs-share -> /Data/nfs-share] ******************************************************************************************************************* fatal: [top1]: .... PLAY RECAP *************************************************************************************************************************************************************** Thx, Robert [email protected]<http://gmail.com/> schrieb am Donnerstag, 24. November 2022 um 21:34:46 UTC+1: Show us your playbooks, roles, and output, and we can tell you why. Without any of those, we'd be guessing just like you. On 11/24/22 3:23 PM, RG wrote: Hi, i once again exactly followed your instruction by copying your published config into the files, because your methon seems comprehensive to me. However the problem is that the tags are not used which means that both tasks are executed completely twice - first for cmp machine and then for the other machines. Do you've an idea why this happens. Thx [email protected] schrieb am Mittwoch, 23. November 2022 um 14:31:52 UTC+1: It sounds like you want one NFS role that can do both NFS server and NFS client tasks. Were I designing such a role I think I would use a variable or tag to identify which "persona" you want the role to configure, and use that in the tasks/main.yml to source two different task files. One task file would do the work for an NFS server persona. One task file would do the work for an NFS client persona. roles/nfs/tasks/main.yml --- - name: configure nfs server include_tasks: nfs_server.yml tags: nfs_server - name: configure nfs client include_tasks: nfs_client.yml tags: nfs_client ... roles/nfs/tasks/nfs_server.yml --- - name: tasks to configure nfs servers some_tasks: ... roles/nfs/tasks/nfs_client.yml --- - name: tasks to configure nfs clients some_tasks: ... This lets you separate the tasks for server and client persona. Executing the role with tag nfs_server will configure the inventory machines as nfs servers. Executing the role with tag nfs_client will configure the inventory machines as nfs clients. Execute the role two times with different inventories and tags as you showed in your original message. my_playbook.yml --- - hosts: cmp become: true tags: nfs_server roles: - nfs - hosts: - hardware:!cmp - vms become: true tags: nfs_client roles: - nfs I am curious to have others also propose ideas to see how others might address the problem. Walter -- Walter Rowe, Division Chief Infrastructure Services, OISM Mobile: 202.355.4123<tel:(202)%20355-4123> On Nov 23, 2022, at 8:08 AM, Robert Grießner <[email protected]> wrote: Hi, i'd like to migrate my playbooks into a ansible role. I started but a basic question raises. E.g. I sould like to implement nfs in network of linux machines. on one machine i've to configure the nfs-sharing and on the other machines I've to implemt the link to the nfs-sourcing host. systemA - configure a share for other hosts systemB,C,D - use the nfs-sharing from system A I tried to create a role called nfs where i have to configure a few tasks on systemA and the other tasks on systemB,C,D I've splitted the tasks into 2 vaious task files one for systemA and one for systemB and both will be imported into main.yml in tasks. --- # tasks file for installing nfs - import_tasks: install_cmp.yml - import_tasks: install_machines.yml in the run.yml I tried to call the same role twice where I used tags to call the plays for the cmp machine from install_cmp.yml and the tags in install_machines for running the plays for the other machines. however this doesn't work - hosts: cmp become: true tags: - create_nfs_cmp - config_exports_cmp - exportfs_cmp - symlink_cmp - symlink_hostsini_cmp roles: - nfs - hosts: - hardware:!cmp - vms become: true tags: - create_nfs_machines - mnt_nfs_machines roles: - nfs is my concept wrong, do I have to configure to roles one for setting up nfs on cmp and one for implementing nfs on the machines or is it possible to create just one role for installing nfs on with vaious tasks on various machines? Thx -- 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]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/3b50c342-d700-43aa-aabc-b30e073160abn%40googlegroups.com<https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2F3b50c342-d700-43aa-aabc-b30e073160abn%2540googlegroups.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7C2af6585300bc4f86179208dacecf4870%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638049686931881427%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=u58oIE8gPgEAknmaCQwuBQG5%2FUGQQNQgugpzTVBLBdA%3D&reserved=0>. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/ECE060CE-203C-4FDE-9C43-C7B74C098649%40nist.gov.
