Рубрики
Uncategorized

Обновление до композитора 2 с использованием Anisible

Неделю назад я посмотрел на модернизацию до композитора 2 на пару машин. Процесс не был таким простым … Помечено с помощью Anbible, DevOps.

Неделю назад я посмотрел на Обновление к композитору 2 на пару машин. Процесс не так просто, как я надеялся, или как то, что было задокументировано. После этого я беспокоился об обновлении его для моей неспособной конфигурации. В конце конструкции, если что-то не совсем работает, я теряю способность развернуть приложение в соответствующие среды.

Моя неблагоприятная роль перед композитором Версия 2 была следующей:

---
- name: Check if composer exists
  stat:
    path: /usr/local/bin/composer
  register: composer_file
- name: Download Composer
  get_url:
    url: https://getcomposer.org/installer
    dest: /root/composer-setup.php
  when: composer_file.stat.isreg is not defined or not composer_file.stat.isreg
- name: Add composer
  command: php /root/composer-setup.php --install-dir=/usr/local/bin --filename=composer
  when: composer_file.stat.isreg is not defined or not composer_file.stat.isreg

По сути, это проверка, существует ли композитор. Если это не загрузите его установить его. Любой, кто знаком с Anisible и Composer, поймет, что это не гарантирует, что все версии композитора одинаковы. Это может привести к некоторому интересному поведению (и является безумной плохой практикой).

Та же роль может быть легко модифицирована для обеспечения того, чтобы одинаковую версию композитора используется на каждом сервере

---
- name: Check if composer exists
  stat:
    path: /usr/local/bin/composer
    checksum_algorithm: sha256
  register: composer_file
- name: Download Composer
  get_url:
    url: https://getcomposer.org/installer
    dest: /root/composer-setup.php
  when: >
    composer_file.stat.isreg is not defined or
    not composer_file.stat.isreg or
    composer_file.stat.checksum != 'c3b2bc477429c923c69f7f9b137e06b2a93c6a1e192d40ffad1741ee5d54760d'
- name: Add composer
  command: php /root/composer-setup.php --version=2.0.4 --install-dir=/usr/local/bin --filename=composer
  when: >
    composer_file.stat.isreg is not defined or
    not composer_file.stat.isreg or
    composer_file.stat.checksum != 'c3b2bc477429c923c69f7f9b137e06b2a93c6a1e192d40ffad1741ee5d54760d'

Поскольку проект Composer предоставляет контрольную сумму для версии на Скачать страницу , это простой случай указания версии для установки и проверки используемой версии соответствует ожидаемой контрольной сумме. Если это не так, установите конкретную версию.

Время развертывания

С серверами обновляются последней версией композитора, пришло время проверить задачу развертывания. Все хорошо и хорошо, имея последний выпуск продукта там, но если это не будет работать, когда вам это нужно, это не хорошо. Установите запуск задачи, нагрузки успеха, а затем …

TASK [Install/update requirements from composer.json] *************************

Ничего, кроме этого. Может быть, есть много много. Через несколько минут … все еще ничего. В конечном итоге время процесса. Раньше это работало нормально, это не сейчас. Композитор там (я проверил). Это правильная версия (я проверял снова). Будет ли он работать вручную? Нет!

Отказ от ответственности: Плохое тренировочное предупреждение! Серверы находятся в Digitalocean, и по умолчанию учетная запись пользователя root. Поэтому Anbible подключается как root, и не делает никаких работ Sudo для повышения привилегий. Всегда была плохая практика для запуска композитора в качестве корня. Но Composer 2.0 ждет явного ввода, чтобы подтвердить, что вы хотите запустить как root.

К счастью, вокруг этого есть способ. На самом деле, два, если вы рассчитываете создание нового пользователя и не запустите как root Отказ Композитор красиво предоставляет --Но взаимодействия Флаг, который можно пропустить. Задача для установки сейчас:

Заключение

Обновление композитора на Anisible было на самом деле проще, чем когда я сделал это на моей местной машине. Любые проблемы, которые я наткнулся, были просто вплоть до моей плохих практик, а не проблема с самой композитором. Даже тогда есть пути вокруг него.

Я буду катить изменение в композитору 2 из всех моих серверов, но также добавляю проблему технического долга, чтобы прекратить использование корня.

Оригинал: «https://dev.to/_garybell/upgrading-to-composer-2-using-ansible-bog»