Merge branch 'master' of ssh://hsh04-source@hsh04.hostsharing.net/home/doms/source.hostsharing.net/source/hsadmin.git

This commit is contained in:
Purodha Blissenbach 2012-09-20 20:25:17 +02:00
commit 502ff83910
5 changed files with 34 additions and 41 deletions

View File

@ -311,7 +311,7 @@ public class DomainProcessorFactory implements EntityProcessorFactory {
} }
Processor domSetupProcessor = new CompoundProcessor( Processor domSetupProcessor = new CompoundProcessor(
createDomainDirectoriesProcessor(dom, templateVars), createDomainDirectoriesProcessor(dom, templateVars),
new CreateFileProcessor(selectVHostTemplate(dom), templateVars, "/etc/apache2/sites-available/" + domName + ".tmp", "root", "root", "644", true), new CreateFileProcessor(selectVHostTemplate(dom), templateVars, iterateMaps.iterator(), "/etc/apache2/sites-available/" + domName + ".tmp", "root", "root", "644", true),
new ShellProcessor("ls /etc/apache2/pems/" + pac + ".pem >/dev/null 2>&1 " + new ShellProcessor("ls /etc/apache2/pems/" + pac + ".pem >/dev/null 2>&1 " +
"&& sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/sites-available/" + domName + ".tmp" + "&& sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/sites-available/" + domName + ".tmp" +
" && (ls /etc/apache2/pems/" + pac + ".chain.pem >/dev/null 2>&1 || sed -i '/SSLCertificateChain.*" + pac + "/d' " + "/etc/apache2/sites-available/" + domName + ".tmp )" + " && (ls /etc/apache2/pems/" + pac + ".chain.pem >/dev/null 2>&1 || sed -i '/SSLCertificateChain.*" + pac + "/d' " + "/etc/apache2/sites-available/" + domName + ".tmp )" +

View File

@ -7,7 +7,7 @@
ServerName {DOM_HOSTNAME} ServerName {DOM_HOSTNAME}
ServerAlias *.{DOM_HOSTNAME} ServerAlias *.{DOM_HOSTNAME}
ServerAdmin {DOM_USERNAME}@{HIVE}.hostsharing.net ServerAdmin webmaster@{DOM_HOSTNAME}
SuexecUserGroup {DOM_USERNAME} {PAC} SuexecUserGroup {DOM_USERNAME} {PAC}
@ -24,15 +24,15 @@
AllowOverride AuthConfig FileInfo Indexes Limit AllowOverride AuthConfig FileInfo Indexes Limit
</Directory> </Directory>
<Location /cgi-bin/> <Directory /home/doms/{DOM_HOSTNAME}/cgi-bin/>
SetHandler cgi-script SetHandler cgi-script
Options +ExecCGI -Indexes -MultiViews Options +ExecCGI -Indexes -MultiViews
</Location> </Directory>
<Location /fastcgi-bin/> <Directory /home/doms/{DOM_HOSTNAME}/fastcgi-bin/>
SetHandler fcgid-script SetHandler fcgid-script
Options +ExecCGI -Indexes -MultiViews Options +ExecCGI -Indexes -MultiViews
</Location> </Directory>
RewriteEngine On RewriteEngine On
RewriteOptions Inherit RewriteOptions Inherit
@ -42,12 +42,14 @@
RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary] RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary]
RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} -d RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} -d
RewriteRule ^(.*) /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1}$1 [last] RewriteRule ^(.*) /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1}$1 [last]
<!-- BEGIN: iterate --> <!-- BEGIN: iterate -->
RewriteCond %{REQUEST_URI} !^/cgi-bin/ RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond %{REQUEST_URI} !^/fastcgi-bin/ RewriteCond %{REQUEST_URI} !^/fastcgi-bin/
RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary] RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary]
RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} !-d RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} !-d
RewriteRule ^(.*) - [redirect=404,last] RewriteRule ^(.*) - [redirect=404,last]
<!-- END: iterate --> <!-- END: iterate -->
AddType application/x-httpd-php .php .php5 .php4 .php3 AddType application/x-httpd-php .php .php5 .php4 .php3
Action application/x-httpd-php /fastcgi-bin/phpstub Action application/x-httpd-php /fastcgi-bin/phpstub
@ -100,12 +102,14 @@
RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:443)?$ [novary] RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:443)?$ [novary]
RewriteCond /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1} -d RewriteCond /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1} -d
RewriteRule ^(.*) /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1}$1 [last] RewriteRule ^(.*) /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1}$1 [last]
<!-- BEGIN: nosubdomainfallbackforhttps --> <!-- BEGIN: nosubdomainfallbackforhttps -->
RewriteCond %{REQUEST_URI} !^/cgi-bin/ RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond %{REQUEST_URI} !^/fastcgi-bin/ RewriteCond %{REQUEST_URI} !^/fastcgi-bin/
RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:443)?$ [novary] RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:443)?$ [novary]
RewriteCond /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1} !-d RewriteCond /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1} !-d
RewriteRule ^(.*) - [redirect=404,last] RewriteRule ^(.*) - [redirect=404,last]
<!-- END: nosubdomainfallbackforhttps --> <!-- END: nosubdomainfallbackforhttps -->
AddType application/x-httpd-php .php .php5 .php4 .php3 AddType application/x-httpd-php .php .php5 .php4 .php3
Action application/x-httpd-php /fastcgi-bin/phpstub Action application/x-httpd-php /fastcgi-bin/phpstub

View File

@ -7,7 +7,7 @@
ServerName {DOM_HOSTNAME} ServerName {DOM_HOSTNAME}
ServerAlias *.{DOM_HOSTNAME} ServerAlias *.{DOM_HOSTNAME}
ServerAdmin {DOM_USERNAME}@{HIVE}.hostsharing.net ServerAdmin webmaster@{DOM_HOSTNAME}
SuexecUserGroup {DOM_USERNAME} {PAC} SuexecUserGroup {DOM_USERNAME} {PAC}
@ -21,13 +21,13 @@
AllowOverride AuthConfig FileInfo Indexes Limit AllowOverride AuthConfig FileInfo Indexes Limit
</Directory> </Directory>
<Location /cgi-bin/> <Directory /home/doms/{DOM_HOSTNAME}/cgi-bin/>
Redirect 501 / Redirect 501 /
</Location> </Directory>
<Location /fastcgi-bin/> <Directory /home/doms/{DOM_HOSTNAME}/fastcgi-bin/>
Redirect 501 / Redirect 501 /
</Location> </Directory>
RewriteEngine On RewriteEngine On
RewriteOptions Inherit RewriteOptions Inherit
@ -35,9 +35,11 @@
RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary] RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary]
RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} -d RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} -d
RewriteRule ^(.*) /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1}$1 [last] RewriteRule ^(.*) /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1}$1 [last]
<!-- BEGIN: iterate --> RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary] <!-- BEGIN: iterate --> RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:80)?$ [novary]
RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} !-d RewriteCond /home/doms/{DOM_HOSTNAME}/subs/${tolower:%1} !-d
RewriteRule ^(.*) - [redirect=404,last] RewriteRule ^(.*) - [redirect=404,last]
<!-- END: iterate --> <!-- END: iterate -->
</VirtualHost> </VirtualHost>
@ -84,6 +86,7 @@
<!-- BEGIN: nosubdomainfallbackforhttps --> RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:443)?$ [novary] <!-- BEGIN: nosubdomainfallbackforhttps --> RewriteCond %{HTTP_HOST} ^(.+)\.{DOM_HOSTNAME}\.?(:443)?$ [novary]
RewriteCond /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1} !-d RewriteCond /home/doms/{DOM_HOSTNAME}/subs-ssl/${tolower:%1} !-d
RewriteRule ^(.*) - [redirect=404,last] RewriteRule ^(.*) - [redirect=404,last]
<!-- END: nosubdomainfallbackforhttps --> <!-- END: nosubdomainfallbackforhttps -->
</VirtualHost> </VirtualHost>
<!-- END: main --> <!-- END: main -->

View File

@ -29,13 +29,11 @@ public class PacProcessorFactory implements EntityProcessorFactory {
EntityManager em, T entity) throws ProcessorException { EntityManager em, T entity) throws ProcessorException {
Pac pac = (Pac) entity; Pac pac = (Pac) entity;
String pacName = pac.getName(); String pacName = pac.getName();
// String customerEMail = pac.getCustomer().getContractualContact().getEmail();
Hive hive = pac.getHive(); Hive hive = pac.getHive();
UnixUser unixUser = getPacAdminUser(pac); UnixUser unixUser = getPacAdminUser(pac);
String password = PasswordTool.generatePassword(); String password = PasswordTool.generatePassword();
Map<String, String> hiveValues = fillHiveValues(hive); Map<String, String> hiveValues = fillHiveValues(hive);
List<Map<String, String>> pacValuesList = fillPacValuesList(hive, null); List<Map<String, String>> pacValuesList = fillPacValuesList(hive, null);
// Map<String, String> emailVars = fillEMailValues(pacName, customerEMail, password);
Processor priProcessor = new CompoundProcessor( Processor priProcessor = new CompoundProcessor(
createAddUserProc(pacName, unixUser, password), createAddUserProc(pacName, unixUser, password),
createSetQuotaProc(pac), createSetQuotaProc(pac),
@ -46,20 +44,24 @@ public class PacProcessorFactory implements EntityProcessorFactory {
createProftpdConfProc(hiveValues, pacValuesList), createProftpdConfProc(hiveValues, pacValuesList),
createMakePacDirectoryStructure(unixUser), createMakePacDirectoryStructure(unixUser),
createIfUp(pacName), createIfUp(pacName),
createHttpdVirtualProc(pacName, pacValuesList)); createHttpdVirtualProc(pacName, pacValuesList),
createAccountingRulesProc());
WaitingTasksProcessor secProcessor = new WaitingTasksProcessor(priProcessor); WaitingTasksProcessor secProcessor = new WaitingTasksProcessor(priProcessor);
// secProcessor.appendProcessor(pac.getHiveName(), createSendEMailProc(pacName, customerEMail, emailVars), "send email to customer");
return secProcessor; return secProcessor;
} }
private Processor createAccountingRulesProc() {
return new ShellProcessor("mk-iptables-rules Accounting");
}
private Processor createHttpdVirtualProc( private Processor createHttpdVirtualProc(
String pacName, List<Map<String, String>> pacValuesList) throws ProcessorException { String pacName, List<Map<String, String>> pacValuesList) throws ProcessorException {
Processor domSetupProcessor = new CompoundProcessor( Processor domSetupProcessor = new CompoundProcessor(
new CreateFileProcessor("/de/hsadmin/mods/pac/httpd-virtual.jtpl", new HashMap<String, String>(), pacValuesList.iterator(), "/etc/apache2/virtual.conf.tmp", "root", "root", "644", true), new CreateFileProcessor("/de/hsadmin/mods/pac/httpd-virtual.jtpl", new HashMap<String, String>(), pacValuesList.iterator(), "/etc/apache2/virtual.conf.tmp", "root", "root", "644", true),
new ShellProcessor("ls /etc/apache2/pems/" + pacName + ".pem >/dev/null 2>&1 " + "&& sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/apache.conf.tmp" new ShellProcessor("ls /etc/apache2/pems/" + pacName + ".pem >/dev/null 2>&1 " + "&& sed -i '/SSLCertificate.*default/d' " + "/etc/apache2/apache.conf.tmp"
+ " && (ls /etc/apache2/pems/" + pacName + ".chain.pem >/dev/null 2>&1" + " && (ls /etc/apache2/pems/" + pacName + ".chain.pem >/dev/null 2>&1"
+ " || sed -i '/SSLCertificateChain.*" + pacName + "/d' "/etc/apache2/virtual.conf.tmp)" + " || sed -i '/SSLCertificateChain.*" + pacName + "/d' " + "/etc/apache2/virtual.conf.tmp)"
+ " || sed -i '/SSLCertificate.*" + pacName"/d' " + "/etc/apache2/virtual.conf.tmp"), + " || sed -i '/SSLCertificate.*" + pacName + "/d' " + "/etc/apache2/virtual.conf.tmp"),
new ShellProcessor("(diff -q /etc/apache2/apache.conf.tmp /etc/apache2/apache.conf" new ShellProcessor("(diff -q /etc/apache2/apache.conf.tmp /etc/apache2/apache.conf"
+ " && rm /etc/apache2/apache.conf.tmp)" + " && rm /etc/apache2/apache.conf.tmp)"
+ " || invoke-rc.d apache2 reload >/dev/null 2>&1")); + " || invoke-rc.d apache2 reload >/dev/null 2>&1"));
@ -85,7 +87,8 @@ public class PacProcessorFactory implements EntityProcessorFactory {
createNetworkInterfacesProc(hiveValues, pacValuesList), createNetworkInterfacesProc(hiveValues, pacValuesList),
createSudouersProc(hiveValues, pacValuesList), createSudouersProc(hiveValues, pacValuesList),
createProftpdConfProc(hiveValues, pacValuesList), createProftpdConfProc(hiveValues, pacValuesList),
createHttpdVirtualProc(pac.getName(), pacValuesList))); createHttpdVirtualProc(pac.getName(), pacValuesList),
createAccountingRulesProc()));
waitingProcessor.appendProcessor(pac.getHiveName(), createDelUserProc(pac.getName()), "remove packet"); waitingProcessor.appendProcessor(pac.getHiveName(), createDelUserProc(pac.getName()), "remove packet");
return waitingProcessor; return waitingProcessor;
} }
@ -155,11 +158,13 @@ public class PacProcessorFactory implements EntityProcessorFactory {
String username = unixUser.getName(); String username = unixUser.getName();
return new ShellProcessor("chmod 711 " + homedir + " && " + return new ShellProcessor("chmod 711 " + homedir + " && " +
"su -l " + username + " -s \"/bin/bash\" -c \"mkdir -p " + "su -l " + username + " -s \"/bin/bash\" -c \"mkdir -p " +
homedir + "/.bak " +
homedir + "/doms " + homedir + "/doms " +
homedir + "/etc " + homedir + "/etc " +
homedir + "/users " + homedir + "/users " +
homedir + "/var " + homedir + "/var " +
"\" && " + "\" && " +
"chmod 0700 " + homedir + "/.bak && " +
"chown httpd " + homedir + "/doms && " + "chown httpd " + homedir + "/doms && " +
"chmod 1550 " + homedir + "/doms && " + "chmod 1550 " + homedir + "/doms && " +
"chmod 2700 " + homedir + "/etc && " + "chmod 2700 " + homedir + "/etc && " +
@ -168,16 +173,6 @@ public class PacProcessorFactory implements EntityProcessorFactory {
); );
} }
// private Processor createSendEMailProc(String pacName,
// String customerEMail, Map<String, String> emailVars) throws ProcessorException {
// return new MailerProcessor(
// customerEMail,
// "Zugangsdaten des neue Hostsharing Pakets " + pacName,
// "/de/hsadmin/mods/pac/email_new_pac_account.jtpl",
// emailVars
// );
// }
private Processor createIfUp(String pacName) { private Processor createIfUp(String pacName) {
return new ShellProcessor("ifup eth0:" + pacName); return new ShellProcessor("ifup eth0:" + pacName);
} }
@ -224,13 +219,4 @@ public class PacProcessorFactory implements EntityProcessorFactory {
return pacValuesList; return pacValuesList;
} }
// private Map<String, String> fillEMailValues(String pacName,
// String customerEMail, String password) {
// Map<String, String> emailVars = new HashMap<String, String>();
// emailVars.put("PAC", pacName);
// emailVars.put("PASSWORD", password);
// emailVars.put("CUST_EMAIL", customerEMail);
// return emailVars;
// }
} }