aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/roles/apt_repo/tasks/main.yml
blob: 4c1d92f3897e37da551e918d57da983b5ff8a25f (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                       




                                                                                                                   






                                          
                           


                                             




                                                                                        

                                                 
                                                                                                                
                                       
- name: Set up repository
  become: true
  block:
    - name: Create keys directory
      ansible.builtin.file:
        path: '{{ apt_repo_keys_dir }}'
        mode: '755'
        state: directory

    - name: Set key path
      ansible.builtin.set_fact:
        # For some reason, if the key is in a weird format that requires
        # running `gpg --dearmor`, you must save it with the .gpg extension
        # instead of .asc. You can then completely skip the gpg step. Source:
        # https://stackoverflow.com/q/71585303/514684
        key_path: '{{ apt_repo_keys_dir }}/{{ apt_repo_name }}{{ apt_repo_key_dearmor | ternary(".gpg", ".asc") }}'

    - name: 'Add key: {{ apt_repo_name }}'
      ansible.builtin.get_url:
        url: '{{ apt_repo_key_url }}'
        dest: '{{ key_path }}'
        mode: '644'

    - name: Get host distro
      ansible.builtin.setup:
        gather_subset: [distribution_release]

    - name: Set repository defaults
      ansible.builtin.set_fact:
        apt_repo_distro: '{{ apt_repo_distro | default(ansible_distribution_release) }}'
        apt_repo_component: '{{ apt_repo_component | default("main") }}'

    - name: 'Add repository: {{ apt_repo_name }}'
      ansible.builtin.apt_repository:
        repo: 'deb [signed-by={{ key_path }}] {{ apt_repo_url }} {{ apt_repo_distro }} {{ apt_repo_component }}'
        filename: '{{ apt_repo_name }}'