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

On 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]
callback_result_format = yaml
deprecation_warnings = False
display_skipped_hosts = False
gathering = explicit
interpreter_python = auto_silent
log_path = /var/log/ansible.log

[connection]
pipelining = true

Inventory iocage.ini

iocage_06

[iocage]
iocage_06

[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 -i iocage.ini pb-test-01.yml
PLAY [Test module vbotka.freebsd.ucl] ******************************************

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

TASK [ansible.builtin.debug] ***************************************************
ok: [iocage_06] => 
    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_06]

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

PLAY RECAP *********************************************************************
iocage_06                  : 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 -i iocage.ini --check --diff pb-test-02.yml
PLAY [Test module vbotka.freebsd.ucl] ******************************************

TASK [Disable FreeBSD-ports repository.] ***************************************
--- before: /etc/pkg/FreeBSD.conf (content)
+++ after: /etc/pkg/FreeBSD.conf (content)
@@ -3,7 +3,7 @@
     mirror_type = "srv";
     signature_type = "fingerprints";
     fingerprints = "/usr/share/keys/pkg";
-    enabled = true;
+    enabled = false;
 }
 FreeBSD-ports-kmods {
     url = "pkg+https://pkg.FreeBSD.org/${ABI}/kmods_quarterly_${VERSION_MINOR}";

changed: [iocage_06]

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