buluma.varnish

Rol de Ansible varnish

Varnish para Linux.

GitHub Versión Problemas Solicitudes de Extracción Descargas
github Version Issues PullRequests Ansible Role

Ejemplo de Playbook

Este ejemplo se toma de molecule/default/converge.yml y se prueba con cada acto de "push", solicitud de extracción y publicación.

---
- name: Converge
  hosts: all
  become: true
  gather_facts: true
  vars:
    varnish_apt_use_packagecloud: false

  pre_tasks:
    - name: Actualizar caché de apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'
      changed_when: false

    - name: Comprobar si existe el archivo EXTERNALLY-MANAGED de python3.11
      ansible.builtin.stat:
        path: /usr/lib/python3.11/EXTERNALLY-MANAGED
      register: externally_managed_file_py311

    - name: Renombrar el archivo EXTERNALLY-MANAGED de python3.11 si 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: Comprobar si existe el archivo EXTERNALLY-MANAGED de python3.12
      ansible.builtin.stat:
        path: /usr/lib/python3.12/EXTERNALLY-MANAGED
      register: externally_managed_file_py312

    - name: Renombrar el archivo EXTERNALLY-MANAGED de python3.12 si 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 máquina necesita ser preparada. En CI esto se hace usando molecule/default/prepare.yml:

---
- name: Preparar
  hosts: all
  gather_facts: false
  become: true

  roles:
    - role: buluma.bootstrap

  tasks:
    - name: Actualizar caché de apt.
      ansible.builtin.apt: update_cache=true cache_valid_time=600
      when: ansible_os_family == 'Debian'

    - name: Asegurarse de que las dependencias de construcción estén instaladas.
      ansible.builtin.yum:
        name:
          - logrotate
          - systemd-sysv
        state: present
      when: ansible_os_family == 'RedHat'

    - name: Asegurarse de que curl esté instalado.
      ansible.builtin.package: name=curl state=present

También puedes ver una explicación completa y un ejemplo sobre cómo usar estos roles.

Variables del Rol

Los valores predeterminados para las variables están establecidos en 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

# Usar el repositorio de Packagecloud en lugar del predeterminado de la distribución
varnish_apt_use_packagecloud: true

# Asegurarse de que se use el repositorio de Packagecloud en RHEL/CentOS.
varnish_packagecloud_repo_yum_repository_priority: "1"

# Solo se usa en RedHat / CentOS.
varnish_yum_repo_baseurl: "https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch"

# Solo se usa en 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

# Opcionalmente definir backends adicionales.
# varnish_backends:
#   apache:
#     host: 10.0.2.2
#     port: 80
#   nodejs:
#     host: 10.0.2.3
#     port: 80

# Opcionalmente definir vhosts apuntando a diferentes backends.
# varnish_vhosts:
#   example.com:
#     backend: apache
#   nodejs.example.com:
#     backend: nodejs

Requisitos

Estado de los roles utilizados

Los siguientes roles se utilizan para preparar un sistema. Puedes preparar tu sistema de otra manera.

Requisito GitHub Versión
buluma.bootstrap Ansible Molecule Version
buluma.systemd Ansible Molecule Version
buluma.core_dependencies Ansible Molecule Version
buluma.httpd Ansible Molecule Version

Contexto

Este rol es parte de muchos roles compatibles. Consulta la documentación de estos roles para más información.

Aquí hay una visión general de roles relacionados:

dependencias

Compatibilidad

Este rol ha sido probado en estas imágenes de contenedor:

contenedor etiquetas
Ubuntu focal, jammy, noble
Debian bullseye

La versión mínima de Ansible requerida es 2.12; se han realizado pruebas en:

  • La versión anterior.
  • La versión actual.
  • La versión en desarrollo.

Si encuentras problemas, por favor regístralos en GitHub

Registro de cambios

Historial del Rol

Licencia

Apache-2.0

Información del Autor

Shadow Walker

Instalar
ansible-galaxy install buluma.varnish
Licencia
apache-2.0
Descargas
7.6k
Propietario
DevOps Engineer