301 Module vbotka.freebsd.ucl

Use case

Test the module vbotka.freebsd.ucl.

Tree

shell> tree .
.
├── ansible.cfg
├── iocage.ini
├── pb-test-01.yml
└── pb-test-02.yml

Synopsis

At a managed node :

  • playbook pb-test-01.yml: get FreeBSD.url from /etc/pkg/FreeBSD.conf

  • playbook pb-test-02.yml: update FreeBSD.enabled in /etc/pkg/FreeBSD.conf

Requirements

Notes

  • TBD

ansible.cfg

[defaults]
gathering = explicit
callback_result_format = yaml
display_skipped_hosts = false

[connection]
pipelining = true

Inventory iocage.ini

iocage_01 ansible_host=10.1.0.18
iocage_02 ansible_host=10.1.0.73
iocage_03 ansible_host=10.1.0.17
iocage_04 ansible_host=10.1.0.29

[iocage]
iocage_04

[iocage:vars]
ansible_user=admin
ansible_become=true
ansible_python_interpreter=auto_silent

Playbook pb-test-01.yml

- name: Test module vbotka.freebsd.ucl
  hosts: iocage
    
  tasks:

    - name: Install devel/uclcmd
      when: install | d(false) | bool
      community.general.pkgng:
        name: devel/uclcmd
        use_globs: false

    - name: Get /etc/pkg/FreeBSD.conf
      register: out
      vbotka.freebsd.ucl:
        path: /etc/pkg/FreeBSD.conf

    - ansible.builtin.debug:
        var: out.stdout

    - name: Get FreeBSD-base repository url.
      register: out
      vbotka.freebsd.ucl:
        path: /etc/pkg/FreeBSD.conf
        upath: FreeBSD-base.url

    - ansible.builtin.debug:
        var: out.stdout

Playbook output - Get FreeBSD.url

(env) > ansible-playbook pb-test-01.yml -i iocage.ini
PLAY [Test module vbotka.freebsd.ucl] ******************************************

TASK [Get /etc/pkg/FreeBSD.conf] ***********************************************
ok: [iocage_04]

TASK [ansible.builtin.debug] ***************************************************
ok: [iocage_04] => 
    out.stdout: |-
        FreeBSD-ports {
            url = "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly";
            mirror_type = "srv";
            signature_type = "fingerprints";
            fingerprints = "/usr/share/keys/pkg";
            enabled = true;
        }
        FreeBSD-ports-kmods {
            url = "pkg+https://pkg.FreeBSD.org/${ABI}/kmods_quarterly_${VERSION_MINOR}";
            mirror_type = "srv";
            signature_type = "fingerprints";
            fingerprints = "/usr/share/keys/pkg";
            enabled = true;
        }
        FreeBSD-base {
            url = "pkg+https://pkg.FreeBSD.org/${ABI}/base_release_${VERSION_MINOR}";
            mirror_type = "srv";
            signature_type = "fingerprints";
            fingerprints = "/usr/share/keys/pkgbase-${VERSION_MAJOR}";
            enabled = true;
        }

TASK [Get FreeBSD-base repository url.] ****************************************
ok: [iocage_04]

TASK [ansible.builtin.debug] ***************************************************
ok: [iocage_04] => 
    out.stdout: |-
        "pkg+https://pkg.FreeBSD.org/${ABI}/base_release_${VERSION_MINOR}"

PLAY RECAP *********************************************************************
iocage_04                  : ok=4    changed=0    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   

Playbook pb-test-02.yml

- name: Test module vbotka.freebsd.ucl
  hosts: iocage
    
  tasks:

    - name: Disable FreeBSD-ports repository.
      register: out
      vbotka.freebsd.ucl:
        path: /etc/pkg/FreeBSD.conf
        upath: FreeBSD-ports.enabled
        value: false

Playbook output - Disable FreeBSD repository

(env) > ansible-playbook pb-test-02.yml -i iocage.ini --check --diff
PLAY [Test module vbotka.freebsd.ucl] ******************************************

TASK [Disable FreeBSD-ports repository.] ***************************************
--- before: /etc/pkg/FreeBSD.conf (content)
+++ after: /etc/pkg/FreeBSD.conf (content)
@@ -1 +1 @@
-   enabled = true;
+   enabled = false;

changed: [iocage_04]

PLAY RECAP *********************************************************************
iocage_04                  : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0