diff --git a/addNewAPs.yml b/addNewAPs.yml index 80698bb..40f5040 100644 --- a/addNewAPs.yml +++ b/addNewAPs.yml @@ -1,40 +1,40 @@ -- name: Detekce zařízení v síti +- name: Detekce zarizeni v siti hosts: localhost vars: subnets: ["10.11.99", "10.22.99"] gather_facts: no tasks: - - name: Získání seznamu zařízení v rozsahu DHCP serveru + - name: Ziskani seznamu zarizeni v rozsahu DHCP serveru ansible.builtin.shell: | for i in $(seq 100 254); do ping -W .1 -c 1 {{ item }}.$i > /dev/null 2>&1 && echo {{ item }}.$i; done || true register: new_ips loop: "{{ subnets }}" - - name: Přidat aktivní IP do dynamického inventáře + - name: Pridani aktivni IP do dynamickeho inventare ansible.builtin.add_host: name: "{{ item }}" groups: found_devices loop: "{{ new_ips.results | map(attribute='stdout_lines') | flatten }}" - - name: Přidat skupinu found_devices do metaskupiny openwrt + - name: Pridani skupiny found_devices do metaskupiny openwrt ansible.builtin.add_host: groups: openwrt name: "{{ item }}" loop: "{{ groups['found_devices'] }}" - - name: Získání seznamu volných adres mimo DHCP server + - name: Ziskáni seznamu volnych adres mimo DHCP server ansible.builtin.shell: | for i in $(seq 1 99); do ping -W .1 -c 1 {{ item }}.$i > /dev/null 2>&1 || echo {{ item }}.$i; done register: free_ips loop: "{{ subnets }}" - - name: Vytvoření seznamu volných IP adres podle subnetu + - name: Vytvoreni seznamu volných IP adres podle subnetu set_fact: free_subnet_ips: "{{ free_subnet_ips | default({}) | combine({item.item: item.stdout_lines}) }}" loop: "{{ free_ips.results }}" -- name: Získání hostů a generování hostnamů +- name: Ziskani hostu a generovani hostnamu hosts: found_devices roles: - gekmihesg.openwrt @@ -43,42 +43,42 @@ ansible_scp_extra_args: "-O" openwrt_install_recommended_packages: false tasks: - - name: Získání unikátního názvu zařízení podle MAC adresy + - name: Ziskani unikatniho nazvu zarizeni podle MAC adresy set_fact: hostname: "ap_{{ ansible_facts.openwrt_devices[ansible_facts.openwrt_interfaces.mgmnt.l3_device].macaddr.replace(':', '') }}" - - name: Uložení ip adresy hosta a hosnamu do seznamu hostů + - name: Ulozeni ip adresy hosta a hosnamu do seznamu hostu set_fact: host_info: { "ip": "{{ ansible_host }}", "hostname": "{{ hostname }}" } - - name: Shromáždění informací o všech hostech a předání na localhost + - name: Shromazdeni informaci o vsech hostech a predani na localhost delegate_to: localhost delegate_facts: true run_once: true set_fact: found_hosts_info: "{{ ansible_play_hosts | map('extract', hostvars, 'host_info') | list }}" -- name: Přidání nového access poitu do správy +- name: Pridani nového access poitu do spravy hosts: localhost gather_facts: no tasks: - - name: Přidělení statické IP adresy a vytvoření souboru v host_vars + - name: Prideleni staticke IP adresy a vytvoreni souboru v host_vars include_tasks: include/createHostVars.yml loop: "{{ found_hosts_info }}" - meta: refresh_inventory - - name: Přidat nalezených hostů do dynamického inventáře + - name: Pridani nalezenych hostu do dynamickeho inventare ansible.builtin.add_host: name: '{{ item.hostname }}' ansible_host: '{{ item.ip }}' groups: new_devices loop: "{{ found_hosts_info }}" - - name: Přidat skupinu new_devices do metaskupiny openwrt + - name: Pridani skupiny new_devices do metaskupiny openwrt ansible.builtin.add_host: groups: openwrt name: "{{ item }}" loop: "{{ groups['new_devices'] }}" -- name: Nastavení statické ip na mgmnt interface +- name: Nastaveni staticke ip na mgmnt interface hosts: new_devices roles: - gekmihesg.openwrt diff --git a/include/createHostVars.yml b/include/createHostVars.yml index 801d9e8..98e8e93 100644 --- a/include/createHostVars.yml +++ b/include/createHostVars.yml @@ -9,15 +9,15 @@ stat: path: host_vars/{{item.hostname}}.yml register: st -- name: Vytvoření souboru v host_vars +- name: Vytvoreni souboru v host_vars template: src: templates/host_vars.j2 dest: host_vars/{{item.hostname}}.yml when: not st.stat.exists -- name: Aktualizovat seznam volných IP adres po přidělení +- name: Aktualizovat seznam volnych IP adres po prideleni set_fact: free_subnet_ips: "{{ free_subnet_ips | combine({ip_subnet: free_subnet_ips[ip_subnet][1:]}) }}" -- name: Přidat blok s novým přístupovým bodem na konec souboru +- name: Pridat blok s novym pristupovym bodem na konec souboru lineinfile: path: inventory.yml # Cesta k souboru line: |2 diff --git a/inventory.yml b/inventory.yml index 56470d9..32ca211 100644 --- a/inventory.yml +++ b/inventory.yml @@ -10,13 +10,11 @@ accessPoints: hosts: ap_107c61992bd8: ansible_host: "10.11.99.2" + ap_c47154393f26: + ansible_host: "10.22.99.2" swconfig: hosts: ap_b04e26bbc7e3: ansible_host: "10.11.99.3" ap_0c806307e88a: - ansible_host: "10.11.99.4" - ap_c47154393f26: - ansible_host: "10.11.99.5" - ap_c47154391634: - ansible_host: "10.11.99.6" \ No newline at end of file + ansible_host: "10.11.99.4" \ No newline at end of file