--- # tasks file for uvok_bird - name: Ensure route/table definitions exists ansible.builtin.file: path: '{{ uvok_bird_route_file }}' state: touch mode: '0750' owner: 'root' group: 'root' modification_time: preserve access_time: preserve - name: Add route/table definitions lineinfile: path: '{{ uvok_bird_route_file }}' state: present search_string: "150" line: "150\tas{{ uvok_bird_opts.clear_as }}" - name: Add route/table definitions lineinfile: path: '{{ uvok_bird_route_file }}' state: present search_string: "100" line: "100\tas{{ uvok_bird_opts.clear_as }}_out" - name: Install routing software package: name: - bird2 state: present - name: Ensure bird config directory exists ansible.builtin.file: path: '{{ uvok_bird_opts.config_dir }}' state: directory mode: '0750' owner: 'bird' group: 'bird' - name: Ensure bird log directory exists ansible.builtin.file: path: '/var/log/bird/' state: directory mode: '0750' owner: 'bird' group: 'bird' - name: Install common templates template: src: '{{ item.src }}' dest: '{{ item.dest }}' mode: '0640' owner: 'bird' group: 'bird' loop: - { src: 'bird.conf.j2', dest: '{{ uvok_bird_opts.config_dir }}/bird.conf' } - { src: 'defines.conf.j2', dest: '{{ uvok_bird_opts.config_dir }}/defines.conf' } notify: configure bird - name: Copy remaining common files copy: src: files/{{ item }} dest: '{{ uvok_bird_opts.config_dir }}/{{ item }}' mode: '0640' owner: 'bird' group: 'bird' loop: - "common.conf" - "logging.conf" notify: configure bird - name: Install clearnet templates template: src: '{{ item.src }}' dest: '{{ item.dest }}' mode: '0640' owner: 'bird' group: 'bird' when: - uvok_bird_opts.clearnet loop: - { src: 'clearnet.conf.j2', dest: '{{ uvok_bird_opts.config_dir }}/clearnet.conf' } - { src: 'clear_defines.conf.j2', dest: '{{ uvok_bird_opts.config_dir }}/clear_defines.conf' } - { src: 'clear_rpki.conf.j2', dest: '{{ uvok_bird_opts.config_dir }}/clear_rpki.conf' } notify: configure bird - name: Copy remaining clearnet files ansible.posix.synchronize: src: 'files/' dest: '{{ uvok_bird_opts.config_dir }}' recursive: true archive: false compress: false checksum: true rsync_opts: - '--chown=bird:bird' - '--chmod=0640' - '--include=*/' - '--include=clear*.conf' - '--exclude=*' when: - uvok_bird_opts.clearnet notify: configure bird - name: Ensure bird peer directory exists ansible.builtin.file: path: '{{ uvok_bird_opts.config_dir }}/clear_peers/' state: directory mode: '0750' owner: 'bird' group: 'bird' when: - uvok_bird_opts.clearnet - name: Remove clearnet config files ansible.builtin.file: path: '{{ item }}' state: absent loop: - '{{ uvok_bird_opts.config_dir }}/clearnet.conf' - '{{ uvok_bird_opts.config_dir }}/clear_defines.conf' - '{{ uvok_bird_opts.config_dir }}/clear_functions.conf' when: - not uvok_bird_opts.clearnet