Operations grimoire/FreeBSD: Difference between revisions
Line 54: | Line 54: | ||
See also [https://docs.freebsd.org/en/books/handbook/cutting-edge/ Updating and Upgrading FreeBSD] in FreeBSD handbook. | See also [https://docs.freebsd.org/en/books/handbook/cutting-edge/ Updating and Upgrading FreeBSD] in FreeBSD handbook. | ||
=== Salt units to run === | |||
==== php-fpm ==== | |||
When you upgrade packages, if php-fpm (php package) is touched, run: | When you upgrade packages, if php-fpm (php package) is touched, run: | ||
Line 60: | Line 63: | ||
If you are invited to upgrade the ZFS pool, please follow instructions form [[Operations_grimoire/ZFS]]. | If you are invited to upgrade the ZFS pool, please follow instructions form [[Operations_grimoire/ZFS]]. | ||
==== PostgreSQL ==== | |||
PostgreSQL requires XML support for Orbeon, see {{T|1888}}, so run: | |||
$ salt -G "roles:dbserver-pgsql" state.apply roles/dbserver-pgsql/server/build |
Revision as of 23:27, 14 January 2024
FreeBSD is the most deployed OS on Nasqueron servers.
General tips
- Directories adheres to UNIX hierarchy:
- Applications use /usr/local/etc for configuration
- More generally, if an application on Linux uses /usr/..., on FreeBSD it will generally be /usr/local/...
- BSD userland is different than Linux userland, but GNU coreutils is available, with g as prefix. For example, you can use gsed -i for inline sed replacement
- Use GNU Makefile (gmake) if something is wrong with make
You can ask Dereckson for any question about FreeBSD.
Ports
Some packages need to be built through ports.
On some roles, this process is automated by Salt:
- rOPS: roles/dbserver-pgsql/server/build.sls for PostgreSQL with XML support (required by Orbeon)
- rOPS: roles/devserver/userland-software/ports.sls for the list defined in rOPS: pillar/devserver/ports.sls
In other cases, for example when there is a conflict of versions, it's handled manually.
For example, as of 2023-05-30, the PDO extension in packages is built against PostgreSQL 13 while we use PostgreSQL 15.
Good to know. We maintain a package repository to put our own packages.
Example of upgrade
The general process is to go to the port directory, build it and install it. To avoid any reinstallation with wrong parameters, you can lock it.
To use the previous example:
$ portsnap fetch update $ cd /usr/ports/databases/php82-pdo_pgsql $ pkg unlock php82-pdo_pgsql $ make clean build package deinstall reinstall $ pkg lock php82-pdo_pgsql
List locked packges
$ pkg lock -l
Salt bootstrap
rOPS: utils/bootstrap/hello-FreeBSD.sh can be used to install Salt and connect to Complector.
Upgrade OS
You can use the freebsd-update
utility:
$ freebsd-update fetch […] No updates needed to update system to 13.2-RELEASE-p0.
For upgrade to a new version:
$ freebsd-update upgrade -r 14.0-RELEASE
See also Updating and Upgrading FreeBSD in FreeBSD handbook.
Salt units to run
php-fpm
When you upgrade packages, if php-fpm (php package) is touched, run:
$ salt-call --local state.apply roles/webserver-alkane/php/service
If you are invited to upgrade the ZFS pool, please follow instructions form Operations_grimoire/ZFS.
PostgreSQL
PostgreSQL requires XML support for Orbeon, see T1888, so run:
$ salt -G "roles:dbserver-pgsql" state.apply roles/dbserver-pgsql/server/build