Koozali.org: home of the SME Server
Other Languages => Français => Topic started by: jissey on February 06, 2018, 05:13:34 PM
-
Bonjour,
je découvre SME.
Merci pour tout ce boulot.
Je fais pas mal d'essais et j'aimerais, lorsque je créer une baie pouvoir automatiser certaines tâches de config :
MYIBAY='sitesweb'
db accounts setprop $MYIBAY PHPBaseDir /tmp/:/home/e-smith/files/ibays/$MYIBAY/html/
db accounts setprop $MYIBAY AllowOverride All
db accounts setprop $MYIBAY FollowSymLinks enabled
J'ai bien compris que le système se base sur des templates, je ne trouve pas à quel endroit l'I-Bay est enregistrée pour pouvoir forcer ces paramètres.
Pour aller plus vite je les écris directement dans accounts mais ça n'est pas une solution et l'automatiser me permettrait d'en apprendre plus sur le systhème.
Merci pour vos réponses
jc
-
Bonsoir et bienvenue,
Peut-être n'avez-vous pas encore vu ce manuel ?
https://wiki.contribs.org/SME_Server:Documentation:Developers_Manual
Peut-être y a-t-il des réponses ? (Je ne suis pas développeur).
Bonne soirée.
-
Bonjour et merci,
c'est bien là que j'ai lu la doc et vu le système de template.
Ma question est : quel est le template déclenché lors de l'enregistrement des baies ou comment le trouver.
Merci
-
1. Change default settings for all ibays
I don't know of any template that will let you change the default settings in the configuration database for new ibays.
To make your changes for all new ibays in server-manager, I think you'd need to edit this section of this file (any changes you make will disappear whenever "e-smith-ibays" is updated unless you work with the developers in the bug tracker to get your customizations added to the core):
my $uid = $accountdb->get_next_uid();
if (my $acct = $accountdb->new_record($name, {
Name => $self->cgi->param('description'),
CgiBin => $self->cgi->param('CgiBin'),
Group => $self->cgi->param('group'),
PublicAccess => $self->cgi->param('publicAccess'),
SSL => $self->cgi->param('SSL'),
UserAccess => $self->cgi->param('userAccess'),
Uid => $uid,
Gid => $uid,
PasswordSet => 'no',
type => 'ibay',
}) )
To have your settings applied to new ibays created at the command line you would need to customize /etc/e-smith/events/actions/ibay-modify, or create your own script in /etc/e-smith/events/actions/ and put a link to it in /etc/e-smith/events/ibay-create
2. Change httpd.conf default output related to AllowOverride, PHPBaseDir, FollowSymLinks
You could copy and customize these templates to achieve the same effect by changing the default content of /etc/httpd/conf/httpd.conf related to these settings:
* /etc/e-smith/templates/etc/httpd/conf/httpd.conf/90e-smithAccess40ibays
* /etc/e-smith/templates/etc/httpd/conf/httpd.conf/95AddType00PHP2ibays
# create custom copies of the templates
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/
cd /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/
cp /etc/e-smith/templates/etc/httpd/conf/httpd.conf/90e-smithAccess40ibays ./
cp /etc/e-smith/templates/etc/httpd/conf/httpd.conf/95AddType00PHP2ibays ./
Edit the copy of 90e-smithAccess40ibays to change the default behavior for your settings:
Line 91:
my $allowOverride = $properties{'AllowOverride'} || "None";
becomes
my $allowOverride = $properties{'AllowOverride'} || "All";
Line 93
my $followSymLinks = $properties{'FollowSymLinks'} || "disabled";
becomes
my $followSymLinks = $properties{'FollowSymLinks'} || "enabled";
Edit the copy of 95AddType00PHP2ibays
Lines 17 & 18
my $basedir = $ibay->prop('PHPBaseDir')
|| ("/home/e-smith/files/ibays/" . $ibay->key . "/");
become
my $basedir = $ibay->prop('PHPBaseDir')
|| ("/tmp/:/home/e-smith/files/ibays/" . $ibay->key . "/html/");
[edit]
I forgot to mention - if anything goes wrong, you can remove these changes using:
# delete the customized templates (the 'templates-custom' folder can stay):
rm /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/90e-smithAccess40ibays
rm /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/95AddType00PHP2ibays
#
# recreate 'httpd.conf'
expand-template /etc/httpd/conf/httpd.conf
#
# restart apache
sv t httpd-e-smith
-
Hi mmccarn,
thanks for these ideas. The second one sounds good 8)
I'll try it as soon as possible and come back here.
-
The second is much safer and easier to revert.
Unlikely to get those changes added to core when custom templates can do the same thing :-)
Besides, I'm trying to work on getting rid of FormMagick (see the devinfo mailing list for more) !!
-
Bonjour et bienvenu,
comme tu désire modifier les valeurs par défaut pour toutes les ibays que tu crées la meilleur option est de le faire au moment de la création via un script lancé par l’événement.
voici une petite liste des événement existant
# cd /etc/e-smith/events/
# ls
actions dns-update group-delete ibay-create ip-down machine-account-create post-install proxy-update restore-tape user-lock yum-remove
bootstrap-console-save domain-create group-modify ibay-delete ip-up network-create post-upgrade pseudonym-create ssl-update user-modify yum-update
bootstrap-ldap-save domain-delete halt ibay-modify ip-up.pptpd network-delete pre-backup pseudonym-delete timeserver-update user-modify-admin
clamav-update domain-modify host-create ibay-modify-files ldap-update password-modify pre-restore pseudonym-modify timezone-update workgroup-update
conf-backup email-update host-delete ibay-modify-servers local portforwarding-update printer-create reboot user-create yum-install
console-save group-create host-modify ip-change logrotate post-backup printer-delete remoteaccess-update user-delete yum-modify
Comme tu as lu le manuel du dev (https://wiki.contribs.org/SME_Server:Documentation:Developers_Manual) tu as vu quel est l'event qui est lancé à la création d'une ibay. Le nom est assez evocateur "ibay-create" ( https://wiki.contribs.org/SME_Server:Documentation:Developers_Manual#Standard_events_and_their_arguments )
Tu as aussi vu que cet event prend un argument : le nom de l'ibay ( https://wiki.contribs.org/SME_Server:Documentation:Developers_Manual#Events_with%20_arguments) . Tu peux donc créer un script dans le language de ton choix ou presque, le mettre dans /etc/e-smith/events/action/ avec un nom évocateur. Il doit cependant être exécutable. Il pourra utiliser comme premier argument le nom de l'ibay pour pouvoir exécuter les commandes de ton choix. Une solution simple serait en bash puisque tu nous as présenté les commandes que tu voulais exécuter en bash.
Tu as aussi vu l'architecture d'un event (https://wiki.contribs.org/SME_Server:Documentation:Developers_Manual#Events) et tu as vu comment les liens doivent être nommés dedans et donc tu comprends que tu dois faire un lien de ton script dans /etc/e-smith/events/action/ dans /etc/e-smith/events/ibay-create/ pour qu'il soit lancé avant l'Expand des templates (https://wiki.contribs.org/SME_Server:Documentation:Developers_Manual#Order_of_implicit_actions) donc un nom comme S05MesConfigIbays serait bien.
Comme tu vois tout est déjà dans ce qu'a pointé Gieres. La seule étape est maintenant de coder ton script en bash ou autre et de faire les liens a la bonne place
Concernant les suggestions de template custom et de hacker les scripts je ne les conseille pas. Tu ne sais jamais si un autre template va plus tard arriver en utilisant une de ces valeurs et tu risque d’avoir un comportement inattendu. Les scripts modifiés seront aussi remis à jours régulièrement sans tes modifications ce qui peut te donner des surprises.
-
Merci Jean-Philippe, j'ai bien vu ou plutôt lu tout ça et j'avoue m'être d'abord penché sur les templates, délaissant les event.
Je ne manquerai pas de suivre cette piste sans doute plus appropriée en effet.
-
Bonjour,
alors voilà la solution finale que j'ai mise en place pour héberger des sites dynamiques type Wordpress.
Suivant les conseils de Jean-Philippe, je me suis réorienté vers les events.
J'ai choisis de passer mes commande en bash car je les avait déjà et je ne connais pas le PERL (ni le bash d'ailleurs).
Donc :
1-Créer un fichier dans /etc/e-smith/events/actions/
Je l'ai appelé ibay-jcg.sh et voici son contenu :
#!/bin/sh
# jcg ajoute les options pour hebergement dynamique (Wordpress)
if [ $1 = 'ibay-create' ]
then
/sbin/e-smith/db accounts setprop $2 PHPBaseDir /tmp/:/home/e-smith/files/ibays/$2/html/
/sbin/e-smith/db accounts setprop $2 AllowOverride All
/sbin/e-smith/db accounts setprop $2 FollowSymLinks enabled
fi
2-Créer un lien symbolique dans /etc/e-smith/events/ibay-create/ qui pointe vers le fichier de commande sh.
Je l'ai nommé 25ibay-jcg
Voilà, merci à tous pour votre aide et votre réactivité!
-
bon travail.
À l'instar de M Jourdain qui faisait de la prose à tout moment sans le savoir, tu sais faire du Bash.
2-Créer un lien symbolique dans /etc/e-smith/events/ibay-create/ qui pointe vers le fichier de commande sh.
Je l'ai nommé 25ibay-jcg
cela marcher mieux si tu l'appelle 04ibay-jcg . Les templates sont expand en 05 : https://wiki.contribs.org/SME_Server:Documentation:Developers_Manual#Order_of_implicit_actions
The generic_template_expand action is currently run at S05 and adjust-services is run at S90. The order of action scripts within an event is subject to change between releases.
tu veux définitivement que tes informations soient bonnes dans la db avant que l'expansion des templates ait lieu !
-
Merci,
Alors je ne comprends pas : mon action doit passer après la création de la baie qui est faite par S15ibay-modify (je n'ai pas le serveur sous les yeux pour le numéro). C'est pour ça que j'ai nommé mon action S25 > S15.
De plus si l'expand template s’exécute en S05, ça ne laisse pas beaucoup de place pour modifier les différentes bases.
Cette dernière remarque pour dire que je ne comprends pas bien la philosophie du système :
Si j'ai bien compris, les actions modifient les bases et les templates génèrent la configuration finale, par exemple pour les ibay, le fichier httpd.conf principalement. Si l'expand passe avant les actions, ça n'a en effet pas d'effet et pourtant les ibay sont bien créees.
Je n'ai pas vérifié le fichier de config d'apache après insertion de mon action, mais le fichier db/accounts est bien à jour lui.
Quelque chose m'échappe...ou alors, comme c'est précisé dans la doc : The generic_template_expand action is currently run at S05 and adjust-services is run at S90. The order of action scripts within an event is subject to change between releases.
et l'expand passe plus tard...je vérifierai lundi.
Dernière remarque : quelle genre d'action pourrait être faite après l'expand (en dehors de services2adjust)?
-
PHPBaseDir, AllowOverride, FollowSymLinks sont utilisé pour l'expand de template pour la config de httpd.
- S05 Generic_template_expand action is currently run (donc expand du template httpd pour l'ibay avant que les valeurs soient modifiées en db)
- S15ibay-modify
- S25 ton script pour modifier les valeur de ton ibay dans la db
-....
- S90 adjust-services
-
Finalement, la solution par les templates était tout aussi bonne. C'est difficile quand on a le choix ;-)
-
Finalement, la solution par les templates était tout aussi bonne. C'est difficile quand on a le choix ;-)
elle t’empêche juste de profiter des mises à jours sur les templates originaux, car tu les caches avec ton nouveau template.