ItinerisLtd.trellis_install_wp_cli_via_composer

trellis_instalar_wp_cli_via_composer

Rol de Ansible Etiqueta de GitHub (última SemVer) Rol de Ansible CircleCI Puntuación de Calidad de Ansible Licencia de GitHub Contratar Itineris Seguir a Itineris en Twitter Seguir a TangRufus en Twitter

Instalar WP-CLI a través de composer en servidores Trellis.

Objetivo

El Problema

Desde WP-CLI v2.0.0, el conjunto más problemático de dependencias, el requisito a una versión antigua de Symfony, ha desaparecido. El único componente de Symfony que todavía tenemos es symfony/finder, ya que no hay un límite superior de versión para este.

Sin embargo, los paquetes phar con dependencias de WP-CLI están siempre cargados desde el phar, lo que significa que sus versiones están bloqueadas. Esto puede causar problemas al intentar usar versiones más nuevas de dependencias requeridas por comandos específicos.

La Solución

Instalar WP-CLI a través de composer resuelve este problema, permitiendo que las versiones de las dependencias sean más flexibles.

Variables del Rol

# Paquetes de Composer que se deben eliminar antes de instalar WP-CLI
# Predeterminado: []
wp_cli_composer_global_remove_packages:
  - wp-cli/wp-cli-bundle
  - psy/psysh

# Paquetes de Composer que se deben instalar
# Predeterminado: "wp-cli/wp-cli-bundle:{{ wp_cli_version }}"
wp_cli_composer_global_require_packages:
  - "wp-cli/wp-cli:2.4.0"
  - "wp-cli/package-command:^2"
  - "psy/psysh:^0.9.12"
  - "xxx/yyy:'^1.2.3 || ^2.2.3'"

# Paquete WP-CLI a instalar
# Predeterminado: []
wp_cli_packages:
  - "typisttech/image-optimize-command:@stable"
  - "[email protected]:Yoast/wp-cli-faker.git"

# Ruta de WP-CLI
# Predeterminado: /usr/bin/wp
wp_cli_bin_path: /usr/bin/wp

# Ruta de finalización de Bash para WP-CLI
# Predeterminado: /etc/bash_completion.d/wp-completion.bash
wp_cli_completion_path: /etc/bash_completion.d/wp-completion.bash

Requisitos

  • Trellis v1.3.0 o superior
  • Ansible v2.7.0 o superior
  • Python v3.7.6 o superior

Instalación

  1. Agrega itinerisltd.trellis_install_wp_cli_via_composer a galaxy.yml

      # galaxy.yml
    
    + - src: itinerisltd.trellis_install_wp_cli_via_composer
    + version: XXX.YYY.ZZZ # ¡Verifica la última versión!
    
  2. Reemplaza el rol wp-cli con itinerisltd.trellis_install_wp_cli_via_composer

      # server.yml
    
    - - { role: wp-cli, tags: [wp-cli] }
    + - { role: itinerisltd.trellis_install_wp_cli_via_composer, tags: [wp-cli] }
    
  3. Instala roles de galaxy

    trellis galaxy install
    # Alternativamente
    ansible-galaxy install -r galaxy.yml --force
    
  4. Reprovisiona

    trellis provision production
    # Alternativamente
    ansible-playbook server.yml -e env=production
    

Preguntas Frecuentes

¿Cómo instalar solo ciertos comandos en lugar de todo el paquete WP-CLI?

Por defecto, se instala todo el paquete WP-CLI. Si deseas mantener tus servidores más ligeros, instala los comandos de manera selectiva.

wp_cli_composer_global_remove_packages:
  - wp-cli/wp-cli-bundle

wp_cli_composer_global_require_packages:
  # Requerido: marco de WP-CLI
  - "wp-cli/wp-cli:^2.4"
  # Solo instala los comandos que necesitas:
  - "wp-cli/core-command:^2"
  - "wp-cli/cron-command:^2"
  - "wp-cli/db-command:^2"
  - "wp-cli/package-command:^2"

¿Qué hacer si composer no puede instalar paquetes debido a restricciones de versiones en conflicto?

Revisa los paquetes existentes de composer y cambia las restricciones de versión a través de las variables del rol. Puede que necesites desinstalar algunos paquetes.

¿Cómo verificar si WP-CLI está instalado a través de composer?

# Mal: instalado a través de Trellis, es decir, el phar
$ wp cli info
WP-CLI root dir:	phar://wp-cli.phar/vendor/wp-cli/wp-cli
# Bien: instalado a través de este rol, es decir, composer
$ wp cli info
WP-CLI root dir:	/home/web/.composer/vendor/wp-cli/wp-cli

¿Es idempotente o determinista?

No.

Es posible que versiones específicas de paquetes ayuden, pero deberás gestionarlas manualmente.

¿Dónde puedo encontrar más cosas interesantes como esta?

¿Dónde puedo dejar reseñas de :star::star::star::star::star:?

¡Gracias! Nos alegra que te guste. Es importante para nosotros que mi jefe sepa que alguien está utilizando este proyecto. Si no está alojado en wordpress.org, considera:

Pruebas

ansible-playbook -i 'localhost,' --syntax-check tests/test.yml

Comentarios

¡Por favor, proporciona comentarios! Queremos hacer que esta biblioteca sea útil en tantos proyectos como sea posible. Por favor, envía un issue y señala qué te gusta y qué no, o bifurca el proyecto y haz sugerencias. Ningún comentario es demasiado pequeño.

Seguridad

Si descubres problemas de seguridad, envía un correo electrónico a [email protected] en lugar de usar el rastreador de problemas.

Créditos

trellis_install_wp_cli_via_composer es un proyecto de Itineris Limited creado por Tang Rufus.

La lista completa de colaboradores se puede encontrar aquí.

Licencia

trellis_install_wp_cli_via_composer se publica bajo la Licencia MIT.

Acerca del proyecto

Install WP-CLI via composer on Trellis servers

Instalar
ansible-galaxy install ItinerisLtd.trellis_install_wp_cli_via_composer
Licencia
mit
Descargas
237
Propietario
We’re a full-service digital marketing agency that partners with ambitious clients to help them grow