From 0e86dac2ac03c156330942ef4e110f77eeef7eb2 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Tue, 20 Jun 2023 13:51:43 -0400 Subject: [PATCH] Add support for custom repos in FreeBSD. --- .../environments/laptop/host_vars/odofreebsd | 1 + .../files/disable_freebsd_upstream.conf | 3 ++ .../roles/package_manager/files/poudriere.pub | 14 +++++++ .../roles/package_manager/tasks/freebsd.yaml | 40 ++++++++++++++++++- .../package_manager/templates/custom.conf.j2 | 8 ++++ 5 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 ansible/roles/package_manager/files/disable_freebsd_upstream.conf create mode 100644 ansible/roles/package_manager/files/poudriere.pub create mode 100644 ansible/roles/package_manager/templates/custom.conf.j2 diff --git a/ansible/environments/laptop/host_vars/odofreebsd b/ansible/environments/laptop/host_vars/odofreebsd index fce1709..c3831fe 100644 --- a/ansible/environments/laptop/host_vars/odofreebsd +++ b/ansible/environments/laptop/host_vars/odofreebsd @@ -1,4 +1,5 @@ os_flavor: "freebsd" +custom_repo: 13amd64-default-framework zfs_snapshot_datasets: - zroot/freebsd/release/be/default sshd_enabled: true diff --git a/ansible/roles/package_manager/files/disable_freebsd_upstream.conf b/ansible/roles/package_manager/files/disable_freebsd_upstream.conf new file mode 100644 index 0000000..38131a8 --- /dev/null +++ b/ansible/roles/package_manager/files/disable_freebsd_upstream.conf @@ -0,0 +1,3 @@ +FreeBSD: { + enabled: no +} diff --git a/ansible/roles/package_manager/files/poudriere.pub b/ansible/roles/package_manager/files/poudriere.pub new file mode 100644 index 0000000..f27b6e2 --- /dev/null +++ b/ansible/roles/package_manager/files/poudriere.pub @@ -0,0 +1,14 @@ +-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv/0Hh9ace1/nH+QnlPPx +XFbSAcp1soEypMuSGgEc+ZNXIkQT11rkzXkTI5vyYIgVYLEE4iMTzXCGhMkb8M1Y +zsXRB8l4+Dimcrtqj/+Fvsk+WVeadXwugZ3LWOIb6V7hLMyGxvbouZHC9gduMaLh +xGoBup3kgOxSuVXVAlCGBZgmdGNmbpZNYl6BcJtK8bnlxFOmBPQsompSzLzIAItO +7r0Rf3xXFOwaCpB1QkFMBGrIDSXkhpXTl1/k5LU2kpM81Ec4EvZwXQJuj3+J3q+n +tMeTY2ARb3e4vBaieTww7obfHqLgx6jyL07gl/pW8WXrx4aLGvMkdpVnTFg0K0X1 +3xoZKGWJdjSznHFtJo+IICLPGMbOxz52lwXDCrRV2yCUMH29hQiCIK9j5q4q1JAD +rV4p5ccabfzUduc4yT9kx0+hAXLxVs5mtIianDnJAEBE4yXucWbM6FaE+jYaN9L3 +dXU6vESTdS6+o8Tz/lo/a0MLyj99URvAxKFsYKg4PnbUcSs+qFuUI0yMpcNIMImy ++7gY54t3Izma5pCS7WXtl38SdM8d/gfl/d5xD88BYWIS82gCXoh9G37PFxzCZaNx +OKclQq1dZ1mXLDD2yHymDCLBXqfEfTBp4tb5A8JBRKBeqkDCOYZNmp+06VzgdPiO +PYwdK2INLfUnBKGN02hgPosCAwEAAQ== +-----END PUBLIC KEY----- diff --git a/ansible/roles/package_manager/tasks/freebsd.yaml b/ansible/roles/package_manager/tasks/freebsd.yaml index ce9b8b3..5258334 100644 --- a/ansible/roles/package_manager/tasks/freebsd.yaml +++ b/ansible/roles/package_manager/tasks/freebsd.yaml @@ -16,6 +16,18 @@ state: present - name: Install Configuration + copy: + src: "files/{{ item.src }}" + dest: "{{ item.dest }}" + mode: 0644 + owner: root + group: wheel + loop: + - src: pkg.conf + dest: /usr/local/etc/pkg.conf + +- name: Install Configuration + when: custom_repo is not defined register: changed_config copy: src: "files/{{ item.src }}" @@ -26,8 +38,32 @@ loop: - src: FreeBSD.conf dest: /usr/local/etc/pkg/repos/FreeBSD.conf - - src: pkg.conf - dest: /usr/local/etc/pkg.conf + +- name: Install Configuration + when: custom_repo is defined + copy: + src: "files/{{ item.src }}" + dest: "{{ item.dest }}" + mode: 0644 + owner: root + group: wheel + loop: + - src: disable_freebsd_upstream.conf + dest: /usr/local/etc/pkg/repos/FreeBSD.conf + - src: poudriere.pub + dest: /usr/local/etc/pkg/poudriere.pub + +- name: Install Configuration + when: custom_repo is defined + register: changed_config + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: root + group: wheel + mode: 0644 + loop: + - { src: custom.conf.j2, dest: /usr/local/etc/pkg/repos/custom.conf } # - name: Replace all packages with packages from new repo # command: pkg upgrade -f -y diff --git a/ansible/roles/package_manager/templates/custom.conf.j2 b/ansible/roles/package_manager/templates/custom.conf.j2 new file mode 100644 index 0000000..7aa8628 --- /dev/null +++ b/ansible/roles/package_manager/templates/custom.conf.j2 @@ -0,0 +1,8 @@ +custom: { + # url: "file:///opt/pkgrepo/packages/current-default-framework" + url: "https://freebsdpkg.fizz.buzz/repo/{{ custom_repo }}", + enabled: yes, + signature_type: "pubkey", + pubkey: "/usr/local/etc/pkg/poudriere.pub", + priority: 100 +}