Page MenuHomePhabricator

upgrade phragile cloud VPS to Debian stable (stretch)
Closed, DeclinedPublic

Description

This is about the puppet code for Phragile and cloud VPSes using it.

In operations/puppet there is module/phragile/ and in the puppet code i see it is one of the places still hardcoding PHP5 package names.

This tells me that the any cloud VPSes using this module are outdated and either on jessie (oldstable) or even trusty (oldoldstable Ubuntu).

This should be upgraded to Debian stretch and PHP7.

I uploaded a patch for that but had a hard time getting reviews in Gerrit so far. (https://gerrit.wikimedia.org/r/#/c/operations/puppet/+/476985/)

So i am making this ticket to go with it and for doing the actual upgrade.

I would merge that change to unblock this and make it possible to upgrade but i would hope that an active maintainer of the project does the actual upgrade.

https://tools.wmflabs.org/openstack-browser/puppetclass/role::phragile::labs tells us the instance that uses it.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change 475032 had a related patch set uploaded (by Dzahn; owner: Dzahn):
[operations/puppet@production] phragile: add stretch/PHP7 support

https://gerrit.wikimedia.org/r/475032

Change 475032 merged by Dzahn:
[operations/puppet@production] phragile: add stretch/PHP7 support

https://gerrit.wikimedia.org/r/475032

I am not suggesting an in-place upgrade of the existing machine. I suggest creating a new VM on stretch in parallel to the existing "prod" one and simply trying the puppet role on that now after the merge above. Then use that for testing and eventually switch over and delete the existing instance.

Change 558476 had a related patch set uploaded (by WMDE-leszek; owner: WMDE-leszek):
[operations/puppet@production] Phragile: Added PHP extensions needed by PHP 7 dependencies

https://gerrit.wikimedia.org/r/558476

I've created a stretch instance. Applying the phragile role there results in composer failing

Notice: /Stage[main]/Phragile/Exec[composer_install]/returns: Loading composer repositories with package information
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns: Installing dependencies (including require-dev) from lock file
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns: Your requirements could not be resolved to an installable set of packages.
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns: 
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   Problem 1
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - Installation request for danielstjules/stringy 1.10.0 -> satisfiable by danielstjules/stringy[1.10.0].
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - danielstjules/stringy 1.10.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   Problem 2
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - Installation request for laravel/framework v5.1.31 -> satisfiable by laravel/framework[v5.1.31].
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - laravel/framework v5.1.31 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   Problem 3
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - Installation request for behat/behat v3.1.0rc2 -> satisfiable by behat/behat[v3.1.0rc2].
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - behat/behat v3.1.0rc2 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   Problem 4
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - Installation request for phpunit/phpunit 4.8.24 -> satisfiable by phpunit/phpunit[4.8.24].
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - phpunit/phpunit 4.8.24 requires ext-dom * -> the requested PHP extension dom is missing from your system.
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   Problem 5
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - Installation request for squizlabs/php_codesniffer 2.5.1 -> satisfiable by squizlabs/php_codesniffer[2.5.1].
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - squizlabs/php_codesniffer 2.5.1 requires ext-xmlwriter * -> the requested PHP extension xmlwriter is missing from your system.
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   Problem 6
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - laravel/framework v5.1.31 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - backup-manager/laravel 1.1.1 requires illuminate/console ^4.0||^5.0 -> satisfiable by laravel/framework[v5.1.31].
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - Installation request for backup-manager/laravel 1.1.1 -> satisfiable by backup-manager/laravel[1.1.1].
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns: 
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   To enable extensions, verify that they are enabled in your .ini files:
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/php.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/10-opcache.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/10-pdo.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-calendar.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-ctype.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-curl.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-exif.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-ftp.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-gettext.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-iconv.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-json.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-mcrypt.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-mysqli.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-phar.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-posix.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-readline.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-shmop.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-sockets.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:     - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
Notice: /Stage[main]/Phragile/Exec[composer_install]/returns:   You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Error: /var/lib/phragile/composer/vendor/bin/composer install returned 2 instead of one of [0]
Error: /Stage[main]/Phragile/Exec[composer_install]/returns: change from notrun to 0 failed: /var/lib/phragile/composer/vendor/bin/composer install returned 2 instead of one of [0]

I've made https://gerrit.wikimedia.org/r/558476 in attempt to add missing extensions.

Change 558476 merged by Dzahn:
[operations/puppet@production] Phragile: Added PHP extensions needed by PHP 7 dependencies

https://gerrit.wikimedia.org/r/558476

@WMDE-leszek Merged on prod puppetmaster. Let me know how it goes / if you need follow-up.

Declining this task as Phragile is not under development or maintained anymore - see T240308#6164990

Declining this task as Phragile is not under development or maintained anymore - see T240308#6164990

Our puppet repo still has roles and a module for Phragile. Is somebody going to clean up?