Aller au contenu

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.