buluma.varnish

Rôle Ansible varnish

Varnish pour Linux.

GitHub Version Problèmes Pull Requests Téléchargements
github Version Issues PullRequests Ansible Role

Exemple de Playbook

Cet exemple est tiré de molecule/default/converge.yml et est testé à chaque poussée, demande de tirage et publication.

---
- name: Converger
  hosts: tous
  become: true
  gather_facts: true
  vars:
    varnish_apt_use_packagecloud: false

  pre_tasks:
    - name: Mettre à jour le cache apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'
      changed_when: false

    - name: Vérifier si le fichier EXTERNALLY-MANAGED de python3.11 existe
      ansible.builtin.stat:
        path: /usr/lib/python3.11/EXTERNALLY-MANAGED
      register: externally_managed_file_py311

    - name: Renommer le fichier EXTERNALLY-MANAGED de python3.11 s'il existe
      ansible.builtin.command:
        cmd: mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.old
      when: externally_managed_file_py311.stat.exists
      args:
        creates: /usr/lib/python3.11/EXTERNALLY-MANAGED.old

    - name: Vérifier si le fichier EXTERNALLY-MANAGED de python3.12 existe
      ansible.builtin.stat:
        path: /usr/lib/python3.12/EXTERNALLY-MANAGED
      register: externally_managed_file_py312

    - name: Renommer le fichier EXTERNALLY-MANAGED de python3.12 s'il existe
      ansible.builtin.command:
        cmd: mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.old
      when: externally_managed_file_py312.stat.exists
      args:
        creates: /usr/lib/python3.12/EXTERNALLY-MANAGED.old

  roles:
    - role: buluma.systemd
      systemd_default_target: multi-user.target
    - role: buluma.httpd
    - role: buluma.varnish

La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml:

---
- name: Préparer
  hosts: tous
  gather_facts: false
  become: true

  roles:
    - role: buluma.bootstrap

  tasks:
    - name: Mettre à jour le cache apt.
      ansible.builtin.apt: update_cache=true cache_valid_time=600
      when: ansible_os_family == 'Debian'

    - name: S'assurer que les dépendances de construction sont installées.
      ansible.builtin.yum:
        name:
          - logrotate
          - systemd-sysv
        state: présent
      when: ansible_os_family == 'RedHat'

    - name: S'assurer que curl est installé.
      ansible.builtin.package: name=curl state=present

Voir aussi une explication complète et un exemple sur comment utiliser ces rôles.

Variables de Rôle

Les valeurs par défaut pour les variables sont définies dans defaults/main.yml:

---
varnish_package_name: "varnish"
varnish_modules_package_name: ""
varnish_version: "7.5"

varnish_use_default_vcl: true
varnish_default_vcl_template_path: default.vcl.j2

varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"

varnish_listen_address: ""
varnish_listen_port: "80"
varnish_secret: "14bac2e6-1e34-4770-8078-974373b76c90"
varnish_config_path: /etc/varnish
varnish_limit_nofile: 131072

varnish_admin_listen_host: "127.0.0.1"
varnish_admin_listen_port: "6082"

varnish_storage: "file,/var/lib/varnish/varnish_storage.bin,256M"
varnish_pidfile: /run/varnishd.pid

varnishd_extra_options: ""

varnish_enabled_services:
  - varnish

# Utiliser le dépôt Packagecloud au lieu du dépôt par défaut de la distribution
varnish_apt_use_packagecloud: true

# S'assurer que le dépôt Packagecloud est utilisé sur RHEL/CentOS.
varnish_packagecloud_repo_yum_repository_priority: "1"

# Utilisé uniquement sur RedHat / CentOS.
varnish_yum_repo_baseurl: "https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch"

# Utilisé uniquement sur Debian / Ubuntu.
varnish_apt_repo: "deb https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/packages/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release }} main"
# deb https://packagecloud.io/varnishcache/varnish60lts/$ID/ $VERSION_CODENAME main

# Optionnellement, définir des backends supplémentaires.
# varnish_backends:
#   apache:
#     host: 10.0.2.2
#     port: 80
#   nodejs:
#     host: 10.0.2.3
#     port: 80

# Optionnellement, définir des vhosts pointés vers des backends différents.
# varnish_vhosts:
#   exemple.com:
#     backend: apache
#   nodejs.exemple.com:
#     backend: nodejs

Exigences

État des rôles utilisés

Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.

Exigence GitHub Version
buluma.bootstrap Ansible Molecule Version
buluma.systemd Ansible Molecule Version
buluma.core_dependencies Ansible Molecule Version
buluma.httpd Ansible Molecule Version

Contexte

Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.

Voici un aperçu des rôles liés :

dépendances

Compatibilité

Ce rôle a été testé sur ces images de conteneur:

conteneur tags
Ubuntu focal, jammy, noble
Debian bullseye

La version minimale d'Ansible requise est 2.12, des tests ont été effectués pour :

  • La version précédente.
  • La version actuelle.
  • La version de développement.

Si vous trouvez des problèmes, veuillez les signaler sur GitHub.

Journal des modifications

Historique du rôle

Licence

Apache-2.0

Information sur l'auteur

Shadow Walker

Installer
ansible-galaxy install buluma.varnish
Licence
apache-2.0
Téléchargements
7.6k
Propriétaire
DevOps Engineer