Applications bureautiques et dev¶
Installation des outils de productivité et de développement. Couche service applicatif.
Rôle apps¶
Ce rôle installe conditionnellement :
- LibreOffice — suite bureautique
- Firefox — navigateur web
- VS Code — éditeur de code
Chaque application est activable individuellement via un flag.
Variables par défaut¶
Créez roles/apps/defaults/main.yml :
apps_enabled: true
apps_libreoffice: true
apps_vscode: true
apps_firefox: true
apps_test_user: "vdi-user"
Tâches principales¶
Créez roles/apps/tasks/main.yml :
---
# --- LibreOffice ---
- name: Installer LibreOffice (Ubuntu)
ansible.builtin.apt:
name: libreoffice
state: present
when: apps_libreoffice and ansible_os_family == "Debian"
- name: Installer LibreOffice (Rocky)
ansible.builtin.dnf:
name: libreoffice
state: present
when: apps_libreoffice and ansible_os_family == "RedHat"
# --- Firefox ---
- name: Installer Firefox (Ubuntu)
ansible.builtin.apt:
name: firefox
state: present
when: apps_firefox and ansible_os_family == "Debian"
- name: Installer Firefox (Rocky)
ansible.builtin.dnf:
name: firefox
state: present
when: apps_firefox and ansible_os_family == "RedHat"
# --- VS Code ---
- name: Ajouter la cle GPG Microsoft (Ubuntu)
ansible.builtin.apt_key:
url: https://packages.microsoft.com/keys/microsoft.asc
state: present
when: apps_vscode and ansible_os_family == "Debian"
- name: Ajouter le depot VS Code (Ubuntu)
ansible.builtin.apt_repository:
repo: "deb [arch=amd64] https://packages.microsoft.com/repos/code stable main"
state: present
when: apps_vscode and ansible_os_family == "Debian"
- name: Ajouter le depot VS Code (Rocky)
ansible.builtin.yum_repository:
name: vscode
description: Visual Studio Code
baseurl: https://packages.microsoft.com/yumrepos/vscode
gpgcheck: true
gpgkey: https://packages.microsoft.com/keys/microsoft.asc
when: apps_vscode and ansible_os_family == "RedHat"
- name: Installer VS Code
ansible.builtin.package:
name: code
state: present
when: apps_vscode
- name: Validation du role
ansible.builtin.include_tasks: validate.yml
tags: [validate]
Assertions¶
Créez roles/apps/tasks/validate.yml :
---
# --- Niveau 1 : technique ---
- name: "Assert : LibreOffice installe"
ansible.builtin.command: libreoffice --version
changed_when: false
when: apps_libreoffice
- name: "Assert : Firefox installe"
ansible.builtin.command: firefox --version
changed_when: false
when: apps_firefox
- name: "Assert : VS Code installe"
ansible.builtin.command: code --version
changed_when: false
when: apps_vscode
# --- Niveau 2 : cas d'usage ---
- name: "Assert : VS Code peut installer une extension"
ansible.builtin.shell: |
code --install-extension ms-python.python --force
code --list-extensions | grep ms-python.python
become: true
become_user: "{{ apps_test_user }}"
changed_when: false
when: apps_vscode
- name: "Assert : LibreOffice peut ouvrir un document vide"
ansible.builtin.shell: |
libreoffice --headless --calc --convert-to csv /dev/null 2>&1 || true
echo "LibreOffice headless OK"
changed_when: false
when: apps_libreoffice
Activation par flag
Avec le profil office, VS Code n'est pas installe (apps_vscode: false). Les assertions correspondantes sont automatiquement ignorees grâce au when.