Execution
Date
11 Sep 2024 11:47:46 +0100
Duration
00:00:11.65
Controller
ssh-gw-4.layershift.com
User
root
Versions
Ansible
2.16.4
ara
1.7.1 / 1.7.1
Python
3.10.10
Summary
21
Hosts
12
Tasks
69
Results
4
Plays
6
Files
0
Records
File: /home/ssh-gateway/ansible/kuly/create2.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | --- - name: Manage inventory file hosts: localhost gather_facts: false vars: inv_file: /home/ssh-gateway/ansible/kuly/canary-inventory tasks: - name: Delete inventory file if it exists ansible.builtin.file: path: "{{ inv_file }}" state: absent - name: Create file and header ansible.builtin.lineinfile: path: "{{ inv_file }}" line: "[canary]\n" create: true mode: '0644' - name: Initialize lists hosts: localhost gather_facts: false tasks: - name: Ensure plesk_hosts_temp is initialized ansible.builtin.set_fact: plesk_hosts_temp: "{{ plesk_hosts_temp | default([]) }}" - name: Ensure plesk_hosts is initialized ansible.builtin.set_fact: plesk_hosts: "{{ plesk_hosts | default([]) }}" - name: Initialize and collect Plesk hosts hosts: all gather_facts: false roles: - plesk tasks: - name: Collect Plesk hosts when: plesk_found ansible.builtin.lineinfile: path: /tmp/plesk_hosts.txt line: "{{ inventory_hostname }}" create: true mode: '0644' delegate_to: localhost - name: Process and save Plesk hosts hosts: localhost gather_facts: false tasks: - name: Read Plesk hosts from file ansible.builtin.set_fact: plesk_hosts_content: "{{ lookup('file', '/tmp/plesk_hosts.txt') }}" - name: Split Plesk hosts into list ansible.builtin.set_fact: plesk_hosts: "{{ plesk_hosts_content.split('\n') | select('match', '^.+$') | list }}" - name: Debug collected Plesk hosts debug: msg: "{{ plesk_hosts }}" - name: Debug length of plesk_hosts debug: msg: "Length of plesk_hosts is {{ plesk_hosts | length }}" - name: Select 10 random Plesk hosts ansible.builtin.set_fact: random_plesk_hosts: "{{ plesk_hosts | random(10) if plesk_hosts | length > 10 else plesk_hosts }}" - name: Debug selected random Plesk hosts debug: msg: "{{ random_plesk_hosts }}" - name: Store selected Plesk hosts in a local variable ansible.builtin.set_fact: canary_hosts: "{{ random_plesk_hosts }}" - name: Add selected Plesk hosts to inventory hosts: localhost gather_facts: false vars: inv_file: /home/ssh-gateway/ansible/kuly/canary-inventory tasks: - name: Add selected Plesk hosts to inventory file ansible.builtin.lineinfile: path: "{{ inv_file }}" line: "{{ item }}" insertafter: "[canary]" loop: "{{ canary_hosts }}" - name: Add footer hosts: localhost gather_facts: false vars: inv_file: /home/ssh-gateway/ansible/kuly/canary-inventory tasks: - name: Add vars ansible.builtin.lineinfile: path: "{{ inv_file }}" line: | [canary:vars] ansible_user=root ansible_port=2233 insertafter: EOF |