commit 2cd6e7d0f987465bbb945b7e8ad9bb0291aab140 Author: greg Date: Sat Jan 3 23:00:29 2026 +0100 push diff --git a/README.md b/README.md new file mode 100644 index 0000000..18909eb --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Debian 13 Ansible workstation installation + +## Configuration + +## Utilisation + +## To do + +- [ ] test + diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..f6f6fdc --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,5 @@ +[defaults] +inventory = inventory.ini +roles_path = roles +host_key_checking = False +retry_files_enabled = False diff --git a/group_vars/all.yml b/group_vars/all.yml new file mode 100644 index 0000000..1e14861 --- /dev/null +++ b/group_vars/all.yml @@ -0,0 +1,3 @@ +--- +timezone: Europe/Paris +ansible_user: "{{ lookup('env', 'USER') }}" diff --git a/inventory.ini b/inventory.ini new file mode 100644 index 0000000..ade4a28 --- /dev/null +++ b/inventory.ini @@ -0,0 +1,2 @@ +[debian] +localhost ansible_connection=local diff --git a/playbooks/install.yml b/playbooks/install.yml new file mode 100644 index 0000000..be5cb1c --- /dev/null +++ b/playbooks/install.yml @@ -0,0 +1,14 @@ +--- +- name: Installation Debian 13 complète + hosts: all + become: true + + roles: + - common + - docker + - podman + - go + - devtools + - libvirt + - opentofu + - element diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml new file mode 100644 index 0000000..3a91a5d --- /dev/null +++ b/roles/common/tasks/main.yml @@ -0,0 +1,20 @@ +--- +- name: Mise à jour APT + ansible.builtin.apt: + update_cache: true + cache_valid_time: 3600 + +- name: Paquets de base + ansible.builtin.apt: + name: + - ca-certificates + - curl + - wget + - gnupg + - git + - vim + - htop + - btop + - wireguard + - python3-venv + state: present diff --git a/roles/devtools/tasks/main.yml b/roles/devtools/tasks/main.yml new file mode 100644 index 0000000..d2f66fd --- /dev/null +++ b/roles/devtools/tasks/main.yml @@ -0,0 +1,86 @@ +--- +- name: Installer outils développeur + ansible.builtin.apt: + name: + - build-essential + - python3 + - python3-pip + - python3-venv + - linuxlogo + - lolcat + - vagrant + - links2 + - kew + state: present + +# VScodium +- name: Ajouter la clé GPG VSCodium + ansible.builtin.get_url: + url: https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg + dest: /usr/share/keyrings/vscodium.gpg + mode: '0644' + +- name: Ajouter le dépôt VSCodium + ansible.builtin.apt_repository: + repo: "deb [signed-by=/usr/share/keyrings/vscodium.gpg] https://download.vscodium.com/debs vscodium main" + filename: vscodium + state: present + +- name: Installer VSCodium + ansible.builtin.apt: + name: codium + update_cache: true + state: present + tags: vscodium + +# Tabby.sh +- name: Télécharger Tabby + ansible.builtin.get_url: + url: "{{ tabby_deb_url }}" + dest: /tmp/tabby.deb + mode: '0644' + tags: tabby + +- name: Installer Tabby + ansible.builtin.apt: + deb: /tmp/tabby.deb + state: present + tags: tabby + +- name: Vérifier si Go est déjà installé + ansible.builtin.stat: + path: "{{ go_install_dir }}/go/bin/go" + register: go_installed + tags: go + +# Go +- name: Télécharger Go {{ go_version }} + ansible.builtin.get_url: + url: "{{ go_url }}" + dest: "/tmp/{{ go_tarball }}" + mode: '0644' + when: not go_installed.stat.exists + tags: go + +- name: Supprimer ancienne installation Go + ansible.builtin.file: + path: "{{ go_install_dir }}/go" + state: absent + when: not go_installed.stat.exists + tags: go + +- name: Installer Go {{ go_version }} + ansible.builtin.unarchive: + src: "/tmp/{{ go_tarball }}" + dest: "{{ go_install_dir }}" + remote_src: true + when: not go_installed.stat.exists + tags: go + +- name: Ajouter Go au PATH global + ansible.builtin.copy: + dest: /etc/profile.d/go.sh + mode: '0755' + content: | + export PATH=$PATH:/usr/local/go/bin + tags: go diff --git a/roles/devtools/vars/main.yml b/roles/devtools/vars/main.yml new file mode 100644 index 0000000..0b4497b --- /dev/null +++ b/roles/devtools/vars/main.yml @@ -0,0 +1,9 @@ +--- +tabby_version: "1.0.215" +tabby_deb_url: "https://github.com/Eugeny/tabby/releases/download/v{{ tabby_version }}/tabby-{{ tabby_version }}-linux-x64.deb" + +go_version: "1.22.1" +go_arch: "amd64" +go_tarball: "go{{ go_version }}.linux-{{ go_arch }}.tar.gz" +go_url: "https://go.dev/dl/{{ go_tarball }}" +go_install_dir: /usr/local diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml new file mode 100644 index 0000000..37e0cff --- /dev/null +++ b/roles/docker/tasks/main.yml @@ -0,0 +1,19 @@ +--- +- name: Installer Docker + ansible.builtin.apt: + name: + - docker.io + - docker-compose + state: present + +- name: Activer Docker + ansible.builtin.service: + name: docker + state: started + enabled: true + +- name: Ajouter l'utilisateur au groupe docker + ansible.builtin.user: + name: "{{ ansible_user }}" + groups: docker + append: true diff --git a/roles/element/tasks/main.yml b/roles/element/tasks/main.yml new file mode 100644 index 0000000..0c000bc --- /dev/null +++ b/roles/element/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Télécharger Element Desktop + ansible.builtin.get_url: + url: "{{ element_deb_url }}" + dest: /tmp/element-desktop.deb + mode: '0644' + tags: element + +- name: Installer Element Desktop + ansible.builtin.apt: + deb: /tmp/element-desktop.deb + state: present + tags: element diff --git a/roles/element/vars/main.yml b/roles/element/vars/main.yml new file mode 100644 index 0000000..e2b169f --- /dev/null +++ b/roles/element/vars/main.yml @@ -0,0 +1,3 @@ +--- +element_version: "1.11.73" +element_deb_url: "https://packages.element.io/debian/pool/main/e/element-desktop/element-desktop_{{ element_version }}_amd64.deb" diff --git a/roles/libvirt/tasks/main.yml b/roles/libvirt/tasks/main.yml new file mode 100644 index 0000000..87407fd --- /dev/null +++ b/roles/libvirt/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: Installer libvirt/KVM + ansible.builtin.apt: + name: + - qemu-kvm + - libvirt-daemon-system + - libvirt-clients + - virtinst + - virt-manager + state: present + +- name: Activer libvirtd + ansible.builtin.service: + name: libvirtd + state: started + enabled: true + +- name: Ajouter l'utilisateur aux groupes libvirt et kvm + ansible.builtin.user: + name: "{{ ansible_user }}" + groups: [libvirt, kvm] + append: true diff --git a/roles/opentofu/tasks/main.yml b/roles/opentofu/tasks/main.yml new file mode 100644 index 0000000..70c2e7b --- /dev/null +++ b/roles/opentofu/tasks/main.yml @@ -0,0 +1,17 @@ +--- +- name: Ajouter clé GPG OpenTofu + ansible.builtin.get_url: + url: "{{ opentofu_key_url }}" + dest: /usr/share/keyrings/opentofu.gpg + mode: '0644' + +- name: Ajouter dépôt OpenTofu + ansible.builtin.apt_repository: + repo: "deb [signed-by=/usr/share/keyrings/opentofu.gpg] {{ opentofu_repo }} stable main" + filename: opentofu + +- name: Installer OpenTofu + ansible.builtin.apt: + name: tofu + update_cache: true + state: present diff --git a/roles/opentofu/vars/main.yml b/roles/opentofu/vars/main.yml new file mode 100644 index 0000000..9b03982 --- /dev/null +++ b/roles/opentofu/vars/main.yml @@ -0,0 +1,3 @@ +--- +opentofu_repo: https://packages.opentofu.org/opentofu/tofu/any/ any main +opentofu_key_url: https://packages.opentofu.org/opentofu/tofu/gpgkey diff --git a/roles/podman/defaults/main.yml b/roles/podman/defaults/main.yml new file mode 100644 index 0000000..e1b71c7 --- /dev/null +++ b/roles/podman/defaults/main.yml @@ -0,0 +1,7 @@ +--- +podman_packages: + - podman + - podman-compose + - buildah + - skopeo + - uidmap diff --git a/roles/podman/tasks/main.yml b/roles/podman/tasks/main.yml new file mode 100644 index 0000000..2e164ad --- /dev/null +++ b/roles/podman/tasks/main.yml @@ -0,0 +1,32 @@ +--- +- name: Installer Podman et outils associés + ansible.builtin.apt: + name: "{{ podman_packages }}" + state: present + tags: podman + +- name: Activer linger pour l'utilisateur (rootless) + ansible.builtin.command: + cmd: "loginctl enable-linger {{ ansible_user }}" + args: + creates: "/var/lib/systemd/linger/{{ ansible_user }}" + tags: podman + +- name: Créer le répertoire containers utilisateur + ansible.builtin.file: + path: "/home/{{ ansible_user }}/.config/containers" + state: directory + owner: "{{ ansible_user }}" + group: "{{ ansible_user }}" + mode: '0755' + tags: podman + +- name: Configurer registries par défaut + ansible.builtin.copy: + dest: "/home/{{ ansible_user }}/.config/containers/registries.conf" + owner: "{{ ansible_user }}" + group: "{{ ansible_user }}" + mode: '0644' + content: | + unqualified-search-registries = ["docker.io", "quay.io"] + tags: podman