web-dev-qa-db-fra.com

Manière correcte de systemd pour le client OpenVPN sur 16.04 Server?

Je suis sur le point de passer de 14.04 LTS à 16.04 LTS, mais je dois d'abord trier les services systemd du logiciel le plus important que j'utilise, comme le client OpenVPN. J'ai un script de démarrage parfait pour 14.04.

J'ai beaucoup lu sur systemd, mais je n'ai pas trop d'expérience. D'un autre post Je comprends aussi ce qui suit:

OpenVPN est un service modélisé sous systemd. Les services sont nommés [email protected]. Donc, vous devriez commencer votre instance /etc/openvpn/myvpn.conf avec

systemctl start [email protected]

Je compile le client OpenVPN. Je ne comprends tout simplement pas cela, [email protected] est-il généré automatiquement ou comment? De plus, comment puis-je ajouter des paramètres de redémarrage (ou tout autre) à ce service, dans ce cas [email protected]? Je voudrais ajouter

Redémarrer = En cas d'échec

Comme recommandé sur freedesktop.org :

Définir ce paramètre en cas d'échec est le choix recommandé pour les services de longue durée, afin d'accroître la fiabilité en tentant une récupération automatique des erreurs. Pour les services qui doivent pouvoir se terminer de leur propre choix (et éviter un redémarrage immédiat), on-anormal est un choix alternatif.

Mon objectif est que le client OpenVPN redémarre toujours s'il n'est pas arrêté par moi.

3
gurabli

En ce qui concerne la partie "[email protected]" de votre question, voici un autre exemple: j'ai un fichier de configuration OpenVPN nommé /etc/openvpn/Germany.conf et je lance donc le démon openvpn avec systemctl start [email protected]. Ceci est ma configuration par défaut, donc ça va dans /etc/default/openvpn.

Si ma passerelle allemande est hors service, j'ai un autre fichier de configuration, /etc/openvpn/Netherlands.conf, que j'appelle systemctl start [email protected].

En ce qui concerne le paramètre de redémarrage, ceci probablement va dans la section [Service] de /etc/systemd/system/multi-user.target.wants/openvpn.service bien que je ne l’aie pas testée moi-même.

Remarque: Ce qui précède suppose que vous utilisez le paquet Ubuntu via apt-get install openvpn. Je ne suis pas sûr de ce qui se passe lorsque vous compilez vous-même les éléments? Aussi: pourquoi voudriez-vous faire ça?

2
OttoEisen

De plus, comment puis-je ajouter des paramètres de redémarrage (ou tout autre) à ce service, dans ce cas [email protected]?

De https://www.freedesktop.org/software/systemd/man/systemd.unit.html (souligné par moi):

Avec un fichier unité foo.service, un répertoire "insérable" foo.service.d/peut exister. Tous les fichiers avec le suffixe ".conf" de ce répertoire seront analysés une fois le fichier analysé. Ceci est utile pour modifier ou ajouter des paramètres de configuration pour une unité, sans avoir à modifier les fichiers de l'unité. Chaque fichier en incrustation doit avoir des en-têtes de section appropriés. Notez que pour les unités instanciées, cette logique cherchera d’abord le sous-répertoire ".d /" et lira ses fichiers ".conf", suivis du sous-répertoire template ".d /" et Fichiers ".conf" qui s'y trouvent. Notez également que les paramètres de la section "[Installer]" ne sont pas respectés dans les fichiers d’unités insérables et n’ont aucun effet.

En plus de/etc/systemd/system, les répertoires auxiliaires ".d" des services système peuvent être placés dans les répertoires/usr/lib/systemd/system ou/run/systemd/system. Les fichiers de substitution dans/etc ont priorité sur ceux de/run, lesquels sont prioritaires sur ceux de/usr/lib. Les fichiers insérés sous l'un de ces répertoires ont priorité sur les fichiers d'unité, où qu'ils se trouvent.

Sur la base de ce qui précède, si vous avez plus d’une configuration openvpn et souhaitez modifier certains aspects de la configuration de tous les services openvpn en fonction de ces configurations, vous devez créer le répertoire /etc/systemd/[email protected] et y placer les fichiers .conf appropriés.

Si vous souhaitez modifier un service openvpn spécifique tel que [email protected] dans votre cas, vous devez créer le répertoire /etc/systemd/[email protected] et y placer les fichiers .conf appropriés.

0
Piotr Dobrogost