audricd
8
15
audricd

@lemmy.ml

audricd 3 points 7 months ago

WOW. I HAVE NOT THOUGHT OF THAT!!!111

path: 0 20625711 20631198, hotness: undefined, score: 3, children: 0
audricd 2 points 7 months ago

hum unfortunately either im doing something else wrong or its not working for me

---
- name: Install Docker Engine and Docker Compose on Debian (Ansible WebUI compatible)
  hosts: all
  become: true
  become_user: root

  vars:
    docker_packages:
      - docker-ce
      - docker-ce-cli
      - containerd.io
      - docker-buildx-plugin
      - docker-compose-plugin

  tasks:

    - name: Ensure required packages are installed
      apt:
        name:
          - ca-certificates
          - curl
          - gnupg
        update_cache: yes
        state: present
      delegate_to: "{{ inventory_hostname }}"

    - name: Ensure /etc/apt/keyrings exists
      file:
        path: /etc/apt/keyrings
        state: directory
        mode: '0755'
      delegate_to: "{{ inventory_hostname }}"

    - name: Get system architecture for Docker repo
      ansible.builtin.command: dpkg --print-architecture
      register: dpkg_architecture
      changed_when: false
      delegate_to: "{{ inventory_hostname }}"

    - name: Setup deb822 formatted repositorie
      ansible.builtin.deb822_repository:
        name: php
        types: deb
        uris: https://download.docker.com/linux/debian
        components: stable
        suites: "{{ ansible_distribution_release }}"
        signed_by: https://download.docker.com/linux/debian/gpg
        state: present
        enabled: true
      when: (ansible_distribution == 'Debian' and ansible_distribution_major_version >= '13')

    - name: Download Docker GPG key
      ansible.builtin.get_url:
        url: https://download.docker.com/linux/debian/gpg
        dest: /etc/apt/keyrings/docker.asc
        mode: '0644'
      delegate_to: "{{ inventory_hostname }}"

    - name: DEBUG - Check if GPG key exists
      ansible.builtin.stat:
        path: /etc/apt/keyrings/docker.asc
      register: gpg_key_stat
      delegate_to: "{{ inventory_hostname }}"

    - name: DEBUG - Show GPG key status
      ansible.builtin.debug:
        msg: "GPG key exists: {{ gpg_key_stat.stat.exists }}, Size: {{ gpg_key_stat.stat.size | default('N/A') }}"

    - name: DEBUG - List keyrings directory
      ansible.builtin.command: ls -lah /etc/apt/keyrings/
      register: keyrings_list
      delegate_to: "{{ inventory_hostname }}"

    - name: DEBUG - Show keyrings directory contents
      ansible.builtin.debug:
        var: keyrings_list.stdout_lines

    - name: Add Docker APT repository (correct for Debian 13)
      ansible.builtin.apt_repository:
        repo: "deb [arch={{ dpkg_architecture.stdout }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable"
        filename: docker
        state: present
      delegate_to: "{{ inventory_hostname }}"

    - name: DEBUG - Check if repo file exists
      ansible.builtin.stat:
        path: /etc/apt/sources.list.d/docker.list
      register: repo_file_stat
      delegate_to: "{{ inventory_hostname }}"

    - name: DEBUG - Show repo file status
      ansible.builtin.debug:
        msg: "Repo file exists: {{ repo_file_stat.stat.exists }}"

    - name: DEBUG - Show repo file contents if exists
      ansible.builtin.command: cat /etc/apt/sources.list.d/docker.list
      register: repo_contents
      when: repo_file_stat.stat.exists
      failed_when: false
      delegate_to: "{{ inventory_hostname }}"

    - name: DEBUG - Display repo contents
      ansible.builtin.debug:
        var: repo_contents.stdout_lines
      when: repo_file_stat.stat.exists

    - name: Update apt cache after adding repo
      apt:
        update_cache: yes
      delegate_to: "{{ inventory_hostname }}"

    - name: Install Docker packages
      apt:
        name: "{{ docker_packages }}"
        state: present
      delegate_to: "{{ inventory_hostname }}"

    - name: Enable & start Docker
      service:
        name: docker
        state: started
        enabled: yes
      delegate_to: "{{ inventory_hostname }}"
PLAY [Install Docker Engine and Docker Compose on Debian (Ansible WebUI compatible)] ***

TASK [Gathering Facts] *********************************************************
[WARNING]: Host 'anytype.lab' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.
ok: [anytype.lab]

TASK [Ensure required packages are installed] **********************************
changed: [anytype.lab]

TASK [Ensure /etc/apt/keyrings exists] *****************************************
ok: [anytype.lab]

TASK [Get system architecture for Docker repo] *********************************
skipping: [anytype.lab]

TASK [Setup deb822 formatted repositorie] **************************************
changed: [anytype.lab]

TASK [Download Docker GPG key] *************************************************
changed: [anytype.lab]

TASK [DEBUG - Check if GPG key exists] *****************************************
ok: [anytype.lab]

TASK [DEBUG - Show GPG key status] *********************************************
ok: [anytype.lab] => {
    "msg": "GPG key exists: False, Size: N/A"
}

TASK [DEBUG - List keyrings directory] *****************************************
skipping: [anytype.lab]

TASK [DEBUG - Show keyrings directory contents] ********************************
ok: [anytype.lab] => {
    "keyrings_list.stdout_lines": []
}

TASK [Add Docker APT repository (correct for Debian 13)] ***********************
changed: [anytype.lab]

TASK [DEBUG - Check if repo file exists] ***************************************
ok: [anytype.lab]

TASK [DEBUG - Show repo file status] *******************************************
ok: [anytype.lab] => {
    "msg": "Repo file exists: False"
}

TASK [DEBUG - Show repo file contents if exists] *******************************
skipping: [anytype.lab]

TASK [DEBUG - Display repo contents] *******************************************
skipping: [anytype.lab]

TASK [Update apt cache after adding repo] **************************************
changed: [anytype.lab]

TASK [Install Docker packages] *************************************************
[ERROR]: Task failed: Module failed: No package matching 'docker-ce' is available
Origin: /tmp/ansible-webui/repositories/1_ansibleplaybooksrepo/playbooks/debian13docker.yml:112:7

110       delegate_to: "{{ inventory_hostname }}"
111
112     - name: Install Docker packages
          ^ column 7

fatal: [anytype.lab]: FAILED! => {"changed": false, "msg": "No package matching 'docker-ce' is available"}

PLAY RECAP *********************************************************************
anytype.lab                : ok=12   changed=5    unreachable=0    failed=1    skipped=4    rescued=0    ignored=0   

path: 0 20623059 20630665 20631579, hotness: undefined, score: 2, children: 0
audricd 2 points 2 months ago

because in soviet russia, you dont delete a post. a post deletes you.

path: 0 23175001, hotness: undefined, score: 2, children: 1
audricd 1 point 7 months ago

none that i can see

path: 0 20622974 20631407, hotness: undefined, score: 1, children: 2
audricd 1 point 7 months ago

oh! I wasnt aware of that? i see its slightly outdated, it has version 26 as opposed to 29 from its official source. at least in trixie stable

path: 0 20623844 20631316, hotness: undefined, score: 1, children: 2
audricd 1 point 7 months ago
path: 0 20623059 20631589, hotness: undefined, score: 1, children: 0
audricd 1 point 3 years ago

Anything goes. Laptops, servers, workstations.. I run my media homeland on a refurbished Lenovo thin pc.

path: 0 6006, hotness: undefined, score: 1, children: 0
audricd 1 point 7 months ago

thanks for sharing! and this works for you? as i said on my original post (on selfhosted channel), im new at ansible and i must be doing something stupid.

this is your yaml very slightly adapted: ```

  • name: Install Docker Engine and Docker Compose on Debian (Ansible WebUI compatible) hosts: all become: true become_user: root

    vars: docker_apks: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin docker_pre_apks: - gpg - ca-certificates - curl - gnupg docker_arch: amd64

    tasks:

    • name: Install pre setup stuff ansible.builtin.apt: pkg: "{{ docker_pre_apks }}" update_cache: true state: present

    • name: Add gpg for docker repo ansible.builtin.apt_key: url: https://download.docker.com/linux/debian/gpg state: present when: (ansible_distribution == 'Debian' and ansible_distribution_major_version <= '12')

    • name: Copy up apt list ansible.builtin.apt_repository: repo: "deb [arch={{ docker_arch }}] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable" state: present filename: docker when: (ansible_distribution == 'Debian' and ansible_distribution_major_version <= '12')

    • name: Setup deb822 formatted repositorie ansible.builtin.deb822_repository: name: php types: deb uris: https://download.docker.com/linux/debian components: stable suites: "{{ ansible_distribution_release }}" signed_by: https://download.docker.com/linux/debian/gpg state: present enabled: true when: (ansible_distribution == 'Debian' and ansible_distribution_major_version >= '13')

    • name: Install docker ansible.builtin.apt: pkg: "{{ docker_apks }}" force_apt_get: yes update_cache: yes state: present

    • name: Start docker service ansible.builtin.service: name: docker enabled: yes state: started


this is the output:

PLAY [Install Docker Engine and Docker Compose on Debian (Ansible WebUI compatible)] ***

TASK [Gathering Facts] ********************************************************* [WARNING]: Host 'anytype.lab' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/... for more information. ok: [anytype.lab]

TASK [Install pre setup stuff] ************************************************* changed: [anytype.lab]

TASK [Add gpg for docker repo] ************************************************* skipping: [anytype.lab]

TASK [Copy up apt list] ******************************************************** skipping: [anytype.lab]

TASK [Setup deb822 formatted repositorie] ************************************** changed: [anytype.lab]

TASK [Install docker] ********************************************************** [ERROR]: Task failed: Module failed: No package matching 'docker-ce' is available Origin: /tmp/ansible-webui/repositories/1_ansibleplaybooksrepo/playbooks/debian13docker.yml:54:7  52 when: (ansible_distribution == 'Debian' and ansible_distribution_major_version >= '13') 53 54 - name: Install docker  ^ column 7  fatal: [anytype.lab]: FAILED! => {"changed": false, "msg": "No package matching 'docker-ce' is available"}

PLAY RECAP ********************************************************************* anytype.lab : ok=3  changed=2  unreachable=0 failed=1  skipped=2  rescued=0 ignored=0


this is my inventory file:

root@ansible:/srv/ansible-webui/ansible/repositories/1_ansibleplaybooksrepo/inventory# cat hosts.yml all: children: lxc_containers: hosts: anytype.lab: ansible_host: 192.168.236.142 ansible_user: root ansible_ssh_private_key_file: ~/.ssh/id_ed25519


my workflow is not *completely* broken because i managed to get this workbook working:
  • name: install root ca certificate hosts: all gather_facts: yes

    tasks:

    • name: Copy custom CA certificate copy: src: ../files/root_ca.crt dest: /usr/local/share/ca-certificates/root_ca.crt mode: '0644'

    • name: Update CA certificates command: update-ca-certificates register: ca_update


its of course a lot simpler...
![](https://lemmy.ml/pictrs/image/f994a18a-3ead-44ff-8a89-bcad05a93c49.png)

PLAY [install root ca certificate] *********************************************

TASK [Gathering Facts] ********************************************************* [WARNING]: Host 'ferdium.lab' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/... for more information. ok: [ferdium.lab]

TASK [Copy custom CA certificate] ********************************************** changed: [ferdium.lab]

TASK [Update CA certificates] ************************************************** changed: [ferdium.lab]

PLAY RECAP ********************************************************************* ferdium.lab : ok=3  changed=2  unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

it was a brand new host. the first (this above) playbook worked, but then the docker one didnt. so it doesnt seem to be a target host issue. both debian 13 lxc if that matters.
path: 0 20646568 20670307, hotness: undefined, score: 1, children: 11
audricd 1 point 7 months ago path: 0 20646568 20670307 20672551 20672757, hotness: undefined, score: 1, children: 9
audricd 1 point 7 months ago

docker_pre_apks:

  • apt-transport-https
  • ca-certificates
  • curl
  • gnupg2
  • libssl-dev
  • python3-cffi-backend
  • python3-pip
  • libffi-dev
  • python3-setuptools
  • python3-nacl
  • python3-jsondiff

docker_apks:

  • docker-ce
  • docker-ce-cli
  • containerd.io

still same result :(

---
- name: Install Docker Engine and Docker Compose on Debian (Ansible WebUI compatible)
  hosts: all
  become: true
  become_user: root

  vars:
    docker_pre_apks:
      - apt-transport-https
      - ca-certificates
      - curl
      - gnupg2
      - libssl-dev
      - python3-cffi-backend
      - python3-pip
      - libffi-dev
      - python3-setuptools
      - python3-nacl
      - python3-jsondiff
    docker_apks:
      - docker-ce
      - docker-ce-cli
      - containerd.io
    docker_arch: amd64

  tasks:

    - name: Install pre setup stuff
      ansible.builtin.apt:
        pkg: "{{ docker_pre_apks }}"
        update_cache: true
        state: present

    - name: Add gpg for docker repo
      ansible.builtin.apt_key:
        url: https://download.docker.com/linux/debian/gpg
        state: present
      when: (ansible_distribution == 'Debian' and ansible_distribution_major_version <= '12')

    - name: Copy up apt list
      ansible.builtin.apt_repository:
        repo: "deb [arch={{ docker_arch }}] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable"
        state: present
        filename: docker
      when: (ansible_distribution == 'Debian' and ansible_distribution_major_version <= '12')

    - name: Setup deb822 formatted repositorie
      ansible.builtin.deb822_repository:
        name: php
        types: deb
        uris: https://download.docker.com/linux/debian
        components: stable
        suites: "{{ ansible_distribution_release }}"
        signed_by: https://download.docker.com/linux/debian/gpg
        state: present
        enabled: true
      when: (ansible_distribution == 'Debian' and ansible_distribution_major_version >= '13')

    - name: Install docker
      ansible.builtin.apt:
        pkg: "{{ docker_apks }}"
        force_apt_get: yes
        update_cache: yes
        state: present

    - name: Start docker service
      ansible.builtin.service:
        name: docker
        enabled: yes
        state: started
PLAY [Install Docker Engine and Docker Compose on Debian (Ansible WebUI compatible)] ***

TASK [Gathering Facts] *********************************************************
[WARNING]: Host 'anytype.lab' is using the discovered Python interpreter at '/usr/bin/python3.13', but future installation of another Python interpreter could cause a different interpreter to be discovered. See https://docs.ansible.com/ansible-core/2.19/reference_appendices/interpreter_discovery.html for more information.
ok: [anytype.lab]

TASK [Install pre setup stuff] *************************************************
changed: [anytype.lab]

TASK [Add gpg for docker repo] *************************************************
skipping: [anytype.lab]

TASK [Copy up apt list] ********************************************************
skipping: [anytype.lab]

TASK [Setup deb822 formatted repositorie] **************************************
changed: [anytype.lab]

TASK [Install docker] **********************************************************
[ERROR]: Task failed: Module failed: No package matching 'docker-ce' is available
Origin: /tmp/ansible-webui/repositories/1_ansibleplaybooksrepo/playbooks/debian13docker.yml:59:7

57       when: (ansible_distribution == 'Debian' and ansible_distribution_major_version >= '13')
58
59     - name: Install docker
         ^ column 7

fatal: [anytype.lab]: FAILED! => {"changed": false, "msg": "No package matching 'docker-ce' is available"}

PLAY RECAP *********************************************************************
anytype.lab                : ok=3    changed=2    unreachable=0    failed=1    skipped=2    rescued=0    ignored=0   

i have NO idea what i am doing wrong. this is new to me. but i personally learn better with practical examples rather than reading books and documentation. i thought setting up docker was simple enough to begin... i guess i was wrong.

path: 0 20646568 20670307 20672551 20672757 20672897 20687699, hotness: undefined, score: 1, children: 7
audricd 1 point 7 months ago

thank you very much for your continued support!

i am not sure which file you are referring to. this is tree from /etc/apt:

root@anytype:/etc/apt# tree
.
|-- apt.conf.d
|   |-- 01autoremove
|   |-- 20listchanges
|   `-- 70debconf
|-- auth.conf.d
|-- keyrings
|-- listchanges.conf
|-- listchanges.conf.d
|-- preferences.d
|-- sources.list.d
|   `-- debian.sources
`-- trusted.gpg.d
    |-- debian-archive-bookworm-automatic.asc
    |-- debian-archive-bookworm-security-automatic.asc
    |-- debian-archive-bookworm-stable.asc
    |-- debian-archive-bullseye-automatic.asc
    |-- debian-archive-bullseye-security-automatic.asc
    |-- debian-archive-bullseye-stable.asc
    |-- debian-archive-trixie-automatic.asc
    |-- debian-archive-trixie-security-automatic.asc
    `-- debian-archive-trixie-stable.asc

its been clear for awhile now that the script is doing pretty much nothing: because, as you can see: even the keyrings directory is empty, so its not even able the repo, hence it cant find docker-ce. im not sure where it fails. if downloading the asc file, dearmoring, adding repo..

as you can see im running as root by the way, so no need to become.

how do you suggest i debug this? sorry for my total lack of knowledge.

path: 0 20646568 20670307 20672551 20672757 20672897 20687699 20687770 20706107, hotness: undefined, score: 1, children: 5
audricd 1 point 7 months ago

my latest / current version doesnt have that anymore (ive been through a lot of constant revisions...)

---
- name: Install Docker Engine and Docker Compose on Debian (Ansible WebUI compatible)
  hosts: all
  become: true
  become_user: root

  vars:
    docker_pre_apks:
      - apt-transport-https
      - ca-certificates
      - curl
      - gnupg2
      - libssl-dev
      - python3-cffi-backend
      - python3-pip
      - libffi-dev
      - python3-setuptools
      - python3-nacl
      - python3-jsondiff
    docker_apks:
      - docker-ce
      - docker-ce-cli
      - containerd.io
    docker_arch: amd64

  tasks:

    - name: Install pre setup stuff
      ansible.builtin.apt:
        pkg: "{{ docker_pre_apks }}"
        update_cache: true
        state: present

    - name: Add gpg for docker repo
      ansible.builtin.apt_key:
        url: https://download.docker.com/linux/debian/gpg
        state: present
      when: (ansible_distribution == 'Debian' and ansible_distribution_major_version <= '12')

    - name: Copy up apt list
      ansible.builtin.apt_repository:
        repo: "deb [arch={{ docker_arch }}] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable"
        state: present
        filename: docker
      when: (ansible_distribution == 'Debian' and ansible_distribution_major_version <= '12')

    - name: Setup deb822 formatted repositorie
      ansible.builtin.deb822_repository:
        name: php
        types: deb
        uris: https://download.docker.com/linux/debian
        components: stable
        suites: "{{ ansible_distribution_release }}"
        signed_by: https://download.docker.com/linux/debian/gpg
        state: present
        enabled: true
      when: (ansible_distribution == 'Debian' and ansible_distribution_major_version >= '13')

    - name: Install docker
      ansible.builtin.apt:
        pkg: "{{ docker_apks }}"
        force_apt_get: yes
        update_cache: yes
        state: present

    - name: Start docker service
      ansible.builtin.service:
        name: docker
        enabled: yes
        state: started

as a reminder: this is run (unsuccessfully) through ansible web-ui while that could be an issue, im confused the same setup was able to run a (simplier) nother playbook

- name: install root ca certificate
  hosts: all
  gather_facts: yes

  tasks:

  - name: Copy custom CA certificate
    copy:
      src: ../files/root_ca.crt
      dest: /usr/local/share/ca-certificates/root_ca.crt
      mode: '0644'

  - name: Update CA certificates
    command: update-ca-certificates
    register: ca_update

im not making sense of this

path: 0 20646568 20670307 20672551 20672757 20672897 20687699 20687770 20706107 20706346 20723789, hotness: undefined, score: 1, children: 2
audricd 1 point 7 months ago

wow that would be extremely kind of you!! im based in spain. im just one hour ahead of you. PMing you my google address

path: 0 20646568 20670307 20672551 20672757 20672897 20687699 20687770 20706107 20706346 20723789 20724007 20783396, hotness: undefined, score: 1, children: 0
audricd 1 point 7 months ago

v29 is a big update https://www.reddit.com/... ive made lxc config changes, and id like to have everything on the same update lvl. no have some apps with a lxc config because of official repos, and some other ansible powered with a lower version. i like to have everything on the same update level so i dont go crazy updating my homelab. besides, this would be "dodging" the problem. in my ansible training, id like to be able to add a repo to a given server.

path: 0 20623844 20631316 20639343 20639938, hotness: undefined, score: 1, children: 0
audricd 1 point 7 months ago

yeah thats the thing - its apparently not doing ****. no keyring, no repo but it is connecting to the remote server. it does say on the log anytype.lab; which is my target server, and its selected from the correct inventory file:

i know it must be something terribly stupid. but i just cant put my finger on it

path: 0 20622974 20631407 20637021 20637276, hotness: undefined, score: 1, children: 0
audricd 1 point 7 months ago

could you maybe please send me the whole thing?

path: 0 20623059 20630665 20631600, hotness: undefined, score: 1, children: 2

thanks for using Leebra!

go to feed...