Installeer tea met Ansible

Gepubliceerd op 31 mei 2026 • 2 min leestijd • 339 woorden
Hoe installeer je tea op je Linux (hosts) via Ansible

Ik gebruik tea om wat dingen te automatiseren in mijn homelab. Aangezien ik meestal ergens helemaal induik, dingen installeer en configureer en het vervolgens weer vergeet, is het voor mij belangrijk dat zoveel mogelijk automatisch gaat. Ansible helpt me hiermee. Ik heb in Ansible een role gemaakt om mijn management host in te richten en te standaardiseren. Om alles netjes op te slaan en versioning op te doen gebruik ik gitea. Om vanaf commandline wat gitea zaken te regelen, zoals een repository aan te maken wanneer deze nog niet bestaat, gebruik ik tea.

Een Ansible role zorgt ervoor dat tea wordt gedownload, geinstalleerd en geconfigureerd.

Ik heb een baseline playbook in playbooks/baseline.yml.

---
- name: Baseline configuratie voor de management Linux host
  hosts: linux
  become: true

  roles:
    - baseline

In roles/baseline/vars/main.yml heb ik de variabelen gezet voor tea

tea_version: "0.14.0"
tea_config_dir: "/home/{{ tea_admin_user }}/.config/tea"
tea_config_file: "{{ tea_config_dir }}/config.yml"

in roles/baseline/tasks/main.yml staan de uiteindelijke acties die ik doe

  - name: Download tea binary
    ansible.builtin.get_url:
        url: "{{ tea_url }}"
        dest: /usr/local/bin/tea
        mode: "0755"
  - name: Zorg dat config directory bestaat
    ansible.builtin.file:
      path: "{{ tea_config_dir }}"
      state: directory
      mode: "0700"
      owner: {{ tea_admin_user }}
      group: {{ tea_admin_user }}
    become: true

  - name: Plaats tea config
    ansible.builtin.template:
      src: templates/tea-config.yml.j2
      dest: "{{ tea_config_file }}"
      mode: "0600"
      owner: {{ tea_admin_user }}
      group: {{ tea_admin_user }}
    become: true

De daadwerkelijke config file staat in roles/baseline/templates/tea-config.yml.j2

logins:
  - name: gitea
    url: {{ tea_gitea_url }}
    token: {{ tea_gitea_token }}
    default: true
    ssh_host: git.thuis.elsinga.me
    ssh_key: ""
    insecure: false
    ssh_certificate_principal: ""
    ssh_agent: false
    ssh_key_agent_pub: ""
    version_check: true
    user: elsingaa
    created: 1773661605
    refresh_token: ""
    token_expiry: 0

preferences:
  editor: false
  flag_defaults:
    remote: ""

De secrets staan in een Ansible vault, ansible-vault edit group_vars/all/vault.yml: Hier staan het gitea url, token en de username.

tea_admin_user: "<de admin user waar je de config voor bouwt>"
tea_gitea_token: "<het token wat je genereert in gitea>"
tea_gitea_url: "<gitea instance>

Met ansible-playbook playbooks/baseline.yml voer ik tenslotte het playbook uit om de daadwerkelijke installatie en configuratie uit te voeren.

Hopelijk zorgt dit ervoor dat ik over een tijdje ook nog snap wat ik gedaan heb.

Zie ook

    Follow me