<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GNU Solaris</title>
	<atom:link href="http://www.gnusolaris.org/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gnusolaris.org</link>
	<description>download Solaris for GNU</description>
	<lastBuildDate>Wed, 07 Dec 2011 07:06:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Wartungsupdates &#8211; Neue Features am laufenden Band</title>
		<link>http://www.gnusolaris.org/wartungsupdates-neue-features-am-laufenden-band</link>
		<comments>http://www.gnusolaris.org/wartungsupdates-neue-features-am-laufenden-band#comments</comments>
		<pubDate>Sun, 07 Aug 2011 12:01:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=4</guid>
		<description><![CDATA[Wir haben gerade ein Maintenance Release für die 2009,10 Appliance Charge mit gestoßen: Fehlerbehebungen für alle noch offenen Fragen (wir sind aus der beta baby!) Sicherheits-Updates Vereinfachte kostenloses Abonnement für Amazon EC2 AMIs Neue und verbesserte Amazon EC2 AMIs Mit der neuen Ubuntu 10.04 LTS Release (Lucid Lynx) Coming Out in ein paar Wochen ist [...]]]></description>
			<content:encoded><![CDATA[<p>Wir haben gerade ein Maintenance Release für die 2009,10 Appliance Charge mit gestoßen:</p>
<ul>
<li>Fehlerbehebungen für alle noch offenen Fragen (wir sind aus der beta baby!)</li>
<li>Sicherheits-Updates</li>
<li>Vereinfachte kostenloses Abonnement für Amazon EC2 AMIs</li>
<li>Neue und verbesserte Amazon EC2 AMIs</li>
</ul>
<p>Mit der neuen Ubuntu 10.04 LTS Release (Lucid Lynx) Coming Out in ein paar Wochen ist dies der letzte Release TurnKey Batch auf dem Ubuntu 8.04-Serie basiert.</p>
<p>Beachten Sie, dass Ubuntu 8.04 ein Long Term Support Version, die weiterhin von Canonical mit Sicherheits-Updates für weitere 3 Jahre (bis April 2013) unterstützt werden wird.</p>
<p>Leider, im Gegensatz Canonical haben wir nicht die Ressourcen, um mehrere Versionen von Ubuntu gleichzeitig unterstützen. Also mit diesem Wartungs-Release heißen wir 8,04 Feierlicher Abschied. Wir Reinigung Haus und pauschal alle Fehler und offene Fragen aus dem Weg, bevor wir den Wiederaufbau der Appliance-Bibliothek von Grund auf auf der Spitze eines neuen Verteilung zu beginnen.</p>
<p>Fixing alle Fehler aus vorhergehenden Versionen vor dem Umbau auf eine neue Verteilung ist nicht nur sauber und ordentlich, es ist gut Engineering!<br />
Fehlerbereinigte und aus der Beta</p>
<p>Wir haben alle wichtigen Fragen von der Gemeinde gemeldet fixiert und sind stolz darauf, die Beta-Label aus fast allen Geräten in der Bibliothek zu entfernen.</p>
<p>Vielen Dank an alle, die Feedback gegeben und uns geholfen, Aufspüren von Bugs. Die meisten Probleme waren gering, aber ein paar (Husten Zimbra Husten) waren böse!<br />
Sicherheits-Updates</p>
<ul>
<li>Alle Sicherheits-Updates, die seit unserer letzten Veröffentlichung Charge haben vorinstalliert. Bestehende Anlagen wurden bereits automatisch aktualisiert, so brauchen Sie nicht, irgendetwas zu tun.</li>
<li>Wir haben jetzt Sicherheits-Updates installieren beim ersten Start</li>
</ul>
<p>Zuvor Geräte wurden so konfiguriert, dass Sicherheits-Updates täglich zu installieren, aber wir haben erkannt, dass ist nicht gut genug! Wir müssen Sicherheits-Updates beim ersten Start installieren, um ein Fenster der Verwundbarkeit von der Öffnung in der Zeit zwischen einem frischen Gerät eingesetzt wird und bis zum Cron-Job, die Sicherheits-Updates installiert läuft verhindern.</p>
<p>Auf der anderen Seite, kann die Installation von Sicherheits-Updates ein paar Minuten dauern und ist nicht kritisch in allen Einsatzszenarien (z. B. eine lokale Entwicklung VM) so, wenn das Gerät zum ersten Mal gestartet wird der Benutzer eine zeitlich begrenzte Möglichkeit, die Installation der überspringen gegeben Sicherheits-Updates.</p>
<h3>Abonnement auf Amazon EC2 AMIs jetzt einfach und kostenlos</h3>
<ol>
<li><strong>Unified-Abonnement (der einfache Teil)</strong>: wir haben einen einheitlichen Vertrag, der den weltweiten Zugriff auf alle schlüsselfertige Appliance AMIs in allen Regionen umfasst geschaffen. Früher musste man an jedem Gerät einzeln, die unnötig kompliziert war zu abonnieren.</li>
<li><strong>Free (wie Freibier)</strong>: Wir haben beschlossen, dass Benutzer ausprobieren TurnKey auf EC2 kostenlos, während wir mehr Feedback von der Community auf die Preisgestaltung zu erbitten hier.</li>
</ol>
<p>In die Zukunft eine vernünftige mark-up auf Nutzungsgebühren könnte ein guter Weg, um Entwicklung zu unterstützen und ermöglichen die jede Aktie einen kleinen Teil der Belastung im Sinne des Projekts nachhaltig sein. Aber der Teufel steckt im Detail, so wollen wir Ihre Meinung zu diesem!</p>
<h3>Neue und verbesserte Amazon EC2 AMIs</h3>
<p>Die neueste Gruppe von Amazon EC2 Bilder jetzt mit:</p>
<ul>
<li>Unterstützung für die US-West-1 Region: Sinn TurnKey Bilder sind heute in allen Regionen EC2 unter einem neuen Eimer Namensschema zur Verfügung:</li>
<ul>
<li>turnkeylinux-us-Ost-1</li>
<li>turnkeylinux-us-west-1</li>
<li>turnkeylinux-eu-west-1</li>
</ul>
<li>Support für die Automatisierung von EC2-Instanz Setup: über einen neuen Benutzer-Daten Skripte Mechanismus (Blogeintrag).</li>
<li>EBS Auto-Halterung: ersetzt die alte buggy ebsmount Init-Skript in früheren Bilder (Blogeintrag).</li>
</ul>
<h3>Eine weitere Sache &#8230;</h3>
<p>In den nächsten Wochen starten wir eine private Beta-Version des TurnKey Hub, einen Web-Service bauen wir es super einfach für die Nutzer zu machen sind bereitzustellen und zu verwalten TurnKey Appliances in der Cloud. Wenn Sie Interesse an einer Einladung sind, sich hier anmelden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/wartungsupdates-neue-features-am-laufenden-band/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nützliches PHP-Drupal-Skript gegen Spamaccounts</title>
		<link>http://www.gnusolaris.org/nutzliches-php-drupal-skript-gegen-spamaccounts</link>
		<comments>http://www.gnusolaris.org/nutzliches-php-drupal-skript-gegen-spamaccounts#comments</comments>
		<pubDate>Sun, 07 Aug 2011 12:00:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=24</guid>
		<description><![CDATA[Für die letzten Monate automatische Bots wurden hunderte von Zombie-Konten pro Tag auf dem TurnKey Website. Ich bin mir nicht sicher, warum sie sich die Mühe. Ich nehme an, es hat etwas mit Spam zu tun, aber sie nie eingeloggt Außerdem Spam fast nie an unserem Content-Filter (Mollom) und wenn es wir immer nuke es. [...]]]></description>
			<content:encoded><![CDATA[<p>Für die letzten Monate automatische Bots wurden hunderte von Zombie-Konten pro Tag auf dem TurnKey Website. Ich bin mir nicht sicher, warum sie sich die Mühe. Ich nehme an, es hat etwas mit Spam zu tun, aber sie nie eingeloggt Außerdem Spam fast nie an unserem Content-Filter (Mollom) und wenn es wir immer nuke es. Null Toleranz.</p>
<h3>Hirn&#8230;</h3>
<p>In der Zwischenzeit diese Zombie-Konten belasten meine kostbare Datenbank, und das stört mich. Außerdem rufen Sie mich voreingenommen, aber ich hasse Zombies. Sie sind entweder tot oder du bist tot.. Wähle eine Seite!</p>
<p>Wir konnten damit CAPTCHA aber wir lieber machen Benutzerregistrierung komplizierter nur als letzten Ausweg.</p>
<p>Also schrieb ich ein quick and dirty Skript, um alle 38489 Zombie-Accounts auf dem TurnKey Linux-Website zu löschen. Wie Sie unten meine Definition von einem Zombie-Benutzer sehen kann, ist eine, die nie in angemeldet ist oder der Zugriff der Website, und ist über eine Woche alt.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

   error_reporting(E_ALL);
   require_once './includes/bootstrap.inc';
   drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

   print &quot;&lt;pre&gt;&quot;;

   $results = db_query(&quot;select uid, name, mail, access, created, login
                        FROM users WHERE created != 0 AND login=0 AND access=0&quot;);

   $i = 0;
   while ($result = db_fetch_object($results)) {
       print_r($result);
       $daysago = ((time() - $result-&gt;created) / (24 * 60 * 60));
       printf(&quot;created = %s, days ago = %d\n&quot;,
              date(&quot;Y-m-d&quot;, $result-&gt;created), $daysago);

       print &quot;n&quot;;
       if($daysago &lt; 7)
           continue;

       user_delete(NULL, $result-&gt;uid);
       $i += 1;
   }

   print &quot;COUNT: $in&quot;;
   print &quot;&lt;/pre&gt;&quot;;
   ?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/nutzliches-php-drupal-skript-gegen-spamaccounts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kleiner Kniff: Den Python Debugger mitten im Programm starten</title>
		<link>http://www.gnusolaris.org/kleiner-kniff-den-python-debugger-mitten-im-programm-starten</link>
		<comments>http://www.gnusolaris.org/kleiner-kniff-den-python-debugger-mitten-im-programm-starten#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:59:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=22</guid>
		<description><![CDATA[Finden Sie sich manchmal wünschen Ihnen könnte abgestürzten Programms zu einem beliebigen Zeitpunkt einfrieren und dann prüfen, was los war interaktiv? Das ist genau das, was der Debugger für sich, aber manchmal ist es einfach zu viel von einer die Mühe, das Programm drin laufen, müssen Sie Haltepunkte, etc. eingestellt Nun, es ist eine wirklich [...]]]></description>
			<content:encoded><![CDATA[<p>Finden Sie sich manchmal wünschen Ihnen könnte abgestürzten Programms zu einem beliebigen Zeitpunkt einfrieren und dann prüfen, was los war interaktiv?</p>
<p>Das ist genau das, was der Debugger für sich, aber manchmal ist es einfach zu viel von einer die Mühe, das Programm drin laufen, müssen Sie Haltepunkte, etc. eingestellt</p>
<p>Nun, es ist eine wirklich einfache Alternative: Rufen Sie den Debugger von einem beliebigen Punkt in Ihrem Programm, wie dieser &#8230;</p>
<pre class="brush: php; title: ; notranslate">
import pdb; pdb.set_trace ();
</pre>
<p>Sie können dann den Zustand des Programms (zB Einheimischen, globals).</p>
<p>Beachten Sie, dass viele komplexe Programme ausnutzen interpretiert Natur Python und gehen noch einen Schritt weiter, indem tatsächlich gewährt dem Benutzer eine Möglichkeit, in eine interaktive, interpretierte Python-Umgebung on-demand (zB Debugging Konsole lauscht auf einem bestimmten Port) Haken. Dies ermöglicht Ihnen, Ihr Programm, in der Regel eine lange leben Rahmen oder Dämon, von innen zu erkunden, während er ausgeführt wird.</p>
<p>Verdrehte bedeutet dies, zum Beispiel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/kleiner-kniff-den-python-debugger-mitten-im-programm-starten/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wodurch sich gutes Web Design auszeichnet</title>
		<link>http://www.gnusolaris.org/wodurch-sich-gutes-web-design-auszeichnet</link>
		<comments>http://www.gnusolaris.org/wodurch-sich-gutes-web-design-auszeichnet#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:58:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=40</guid>
		<description><![CDATA[Vor ein paar Monaten war ich nach Wegen, um die schlüsselfertige Web-Site zu verbessern suchen. Ich verbrachte viel Zeit damit gute Website Design online nach: Studium der Theorie der Website-Design von Ressourcen wie &#8220;A List Apart&#8221;. &#8220;Reverse engineering&#8221; die Gestaltung der bestehenden erfolgreichen Web-Sites: Good.is Online-Magazin / community Der WordPress-Blog Techcrunch A List Apart (sie [...]]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Monaten war ich nach Wegen, um die schlüsselfertige Web-Site zu verbessern suchen. Ich verbrachte viel Zeit damit gute Website Design online nach:</p>
<ol>
<li>Studium der Theorie der Website-Design von Ressourcen wie &#8220;A List Apart&#8221;.</li>
<li>&#8220;Reverse engineering&#8221; die Gestaltung der bestehenden erfolgreichen Web-Sites:</li>
<ul>
<li>Good.is Online-Magazin / community</li>
<li>Der WordPress-Blog</li>
<li>Techcrunch</li>
<li>A List Apart (sie sind die Experten für Website-Design und Usability)</li>
</ul>
</ol>
<p>Ich zahlte vor allem Aufmerksamkeit auf die sozialen Aspekte der Web-Seiten, die ich studiert, als ich an der Verbesserung der sozialen Erfahrung auf dem TurnKey Website sowie war.</p>
<p>Ich wollte mein Verständnis von guten Web-Design im Allgemeinen zu verbessern. Nicht nur für meine Arbeit auf dem TurnKey Website. Bis dahin werden wir besprachen unsere Ideen für die schlüsselfertige Hub und es war klar, es würde sich als nützlich für die auch kommen.</p>
<p>Außerdem sind die Grundsätze der guten Web-Design und guter Usability im Allgemeinen eng verwandt. Viel darüber nachgedacht, man ist eine gute Übung für die Verbesserung der anderen Seite.</p>
<p>Bottom line, raffinierte ich, was ich bisher auf ein einfaches Design-Methodik gelernt:</p>
<ol>
<li><strong>Brainstorming</strong>: put in das Schreiben eine Liste von Ideen von Gegenständen, die dem Benutzer präsentiert werden soll. Anything goes, in keiner bestimmten Reihenfolge.</li>
<li><strong>ACHTUNG Karte</strong>: translate der Brainstorming-Liste in eine Aufmerksamkeit Karte von:
<ul>
<li>Gruppierung ähnliche Artikel: Dinge, die wirklich verschiedene Teile eines Design-Element sind</li>
<li>Die Bestellung der High-Level-Elemente nach Priorität (1, 2, 3 &#8230;)</li>
<li>Übersetzen der bestellten Elemente in eine Zeichnung von Blöcken, die die Aufmerksamkeit des Benutzers teilen gemäß der Priorität geben wir das Element.</li>
</ul>
<p>Sie tun das, indem man berücksichtigt, dass Benutzer nicht lesen oder zu analysieren Seiten, überfliegen sie sehr schnell (zB ein paar Millisekunden). Die Menge an Aufmerksamkeit, die Elemente auf der Seite erhalten, sind durch ihre Größe und Lage erfolgen. Englisch Publikum Scan einer Web-Seite von oben nach unten, von links nach rechts, so einen großen Posten auf der oberen linken hat eine viel höhere Chance auf Aufmerksamkeit, als ein kleiner Punkt auf der rechten unteren Ecke.</p>
<p>Stellen Sie sich vor, dass es Energie nimmt für das Auge zu behalten und Scannen mit jedem Millisekunde Ihre Besucher eher zum Lesen zu stoppen, werden abgelenkt, eine Entscheidung zu treffen, auf einen Link klicken, schließen Sie die Registerkarte, etc.</p>
<p>Fragen können wir uns fragen, um die Priorität eines Elements zu bestimmen:</p>
<ul>
<li>Ist es informativ? (Z.B. Blog-Post, weiterführende Links)</li>
<li>Wie nützlich ist es für den Anwender? (Z.B. Suchfeld oder die Navigation links)</li>
<li>Ist es ein Aufruf zum Handeln? (Z. B., melden Sie sich!)</li>
<li>Ist es zur Verbesserung der Glaubwürdigkeit der Site? erleichtern, uns zu vertrauen? (ZB bekannte Marken und Logos, Zeugnisse, Blog-Archiv)</li>
<li>Ist es ermutigen, Beiträge der Community? (Z.B. Liste der Top-Poster, recent comments box)</li>
</ul>
<p>In Bezug auf Wiederholung, in einigen Fällen kann es sinnvoll sein, ein Element (z. B. RSS abonnieren Logo) an verschiedenen Standorten haben. Schonender Umgang mit der Wiederholung verbessern können Anwender Engagement.</li>
<li><strong>Funktionale Umsetzung</strong>: Übersetzung der &#8220;Aufmerksamkeit map&#8221;-Design, eine funktionale Website Umsetzung. Pay minimal auf Formular / styling Überlegungen zu diesem Zeitpunkt.</li>
<li><strong>Styling</strong>: machen die Website der funktionalen Informations-Architektur aussehen optisch ansprechend</li>
</ol>
<p>Dies fasst meine Denkprozess, und es scheint ziemlich gut zu funktionieren in der Praxis auch. Für beste Ergebnisse versuchen Sie nicht, auf alle Schritte auf einmal zu arbeiten. Ich finde, ich bin viel effektiver, wenn ich geistigen Kontext-Switches zu minimieren und konzentriere mich voll Gehirn Macht auf jedem Schritt getrennt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/wodurch-sich-gutes-web-design-auszeichnet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wichtige TurnKey Sicherheitsupdates &#8211; LESEN!</title>
		<link>http://www.gnusolaris.org/wichtige-turnkey-sicherheitsupdates-lesen</link>
		<comments>http://www.gnusolaris.org/wichtige-turnkey-sicherheitsupdates-lesen#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:58:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=9</guid>
		<description><![CDATA[Ich habe einige schlechte Nachrichten und ein paar gute Neuigkeiten. Die schlechte Nachricht ist, dass, wenn Ihre schlüsselfertige Installation ist älter als 2 Wochen können Sie nicht mehr erhalten Sicherheits-Updates. Die gute Nachricht ist, dass Sie diese Zeilen lesen, und es ist ein sehr einfach zu beheben. Entweder starten Sie Ihr System, oder melden Sie [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe einige schlechte Nachrichten und ein paar gute Neuigkeiten. Die schlechte Nachricht ist, dass, wenn Ihre schlüsselfertige Installation ist älter als 2 Wochen können Sie nicht mehr erhalten Sicherheits-Updates.</p>
<p>Die gute Nachricht ist, dass Sie diese Zeilen lesen, und es ist ein sehr einfach zu beheben. Entweder starten Sie Ihr System, oder melden Sie sich an und starten Sie den Dienst cron:</p>
<pre class="brush: php; title: ; notranslate">
/etc/init.d/cron start
</pre>
<p>Bis Sie Recron, Sicherheits-Updates und andere Scheduler damit verbundenen Dienstleistungen (z. B. tägliche Backups) starten wird nicht funktionieren.</p>
<h3>Was ist passiert?</h3>
<p>Ubuntu vermasselt einer aktuellen Sicherheitsupdates. Es war ein übler Bug. Nach der Installation bricht das Update cron verwendet der Planungs-Dämon TurnKey auf auto-install Sicherheits-Updates. Nicht gut.</p>
<p>Nach einer Routine-Bericht aus dem Zugriff auf Protokolle für unsere Sicherheit Repository erzeugt, gibt es derzeit Tausende von schlüsselfertigen Installationen von diesem Problem betroffen. Diese Systeme sind nicht immer die automatische Sicherheits-Updates. Es gibt keine unmittelbare Gefahr, aber das könnte sich schnell ändern, wenn eine Remote-Schwachstelle in der Zeit, die wem auch immer verantwortlich ist für den Server, um dies herauszufinden entdeckt wird.</p>
<h3>Stellen Sie sicher, wir können immer erreichen Sie</h3>
<p>Es gibt moralische in all dieser: sicherstellen, dass wir immer erreichen können Sie irgendwie.</p>
<p>Sicher, in der Regel brauchen wir nicht, um Ihre Aufmerksamkeit in Bezug auf Sicherheitsfragen zu erhalten, weil schlüsselfertig an auto-install-Updates konfiguriert ist, aber als dieser Vorfall zeigt, können wir nicht auf, der immer funktioniert verlassen.</p>
<p>Dieses Mal können wir nicht das Problem zu beheben auf unserer Seite, da es die sehr Auto-Update-Mechanismus, der normalerweise verwendet wird, um Sicherheitslücken zu beheben Effekte.</p>
<p>Das Beste, was wir tun können, ist zu versuchen zu erreichen, um Benutzern und informieren sie, dass es ein Problem, dass sie manuell eingreifen zu lösen müssen. Hoffentlich können wir bis jemand abonniert dieses Blogs oder News-und Sicherheitspolitik Ankündigungen Newsletter, oder dass ein Hub-Konto.</p>
<p>In jedem Fall werden wir bald herausfinden, aus den Protokollen über die Sicherheit Repository, wie viele unserer Nutzer können wir oder nicht erreichen können.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/wichtige-turnkey-sicherheitsupdates-lesen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSL Zertifikate selbst erstellen und unterzeichnen</title>
		<link>http://www.gnusolaris.org/ssl-zertifikate-selbst-erstellen-und-unterzeichnen</link>
		<comments>http://www.gnusolaris.org/ssl-zertifikate-selbst-erstellen-und-unterzeichnen#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:57:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=6</guid>
		<description><![CDATA[Keeping it simple, HTTPS eine Kombination aus den HTTP-und SSL / TLS-Protokolle, die Verschlüsselung bietet während der Authentifizierung des Servers. Die Hauptidee ist es, einen sicheren Kanal über ein unsicheres Netzwerk zu schaffen, gewährleisten &#8220;vernünftigen&#8221; Schutz vor Lauschangriffen und Man-in-the-Middle-Angriffe. HTTPS davon aus, dass spezielle CA (Certificate Authority)-Zertifikate sind in Web-Browsern vorinstalliert. Wenn das SSL-Zertifikat [...]]]></description>
			<content:encoded><![CDATA[<p>Keeping it simple, HTTPS eine Kombination aus den HTTP-und SSL / TLS-Protokolle, die Verschlüsselung bietet während der Authentifizierung des Servers. Die Hauptidee ist es, einen sicheren Kanal über ein unsicheres Netzwerk zu schaffen, gewährleisten &#8220;vernünftigen&#8221; Schutz vor Lauschangriffen und Man-in-the-Middle-Angriffe.</p>
<p>HTTPS davon aus, dass spezielle CA (Certificate Authority)-Zertifikate sind in Web-Browsern vorinstalliert. Wenn das SSL-Zertifikat ist nicht von einer dieser CAs signiert, zeigt der Browser eine Warnung aus.</p>
<p>TurnKey Geräte erzeugen selbst signierte Zertifikate beim ersten Start, um einen verschlüsselten Traffic Channel geben, sondern weil die Zertifikate nicht von einer vertrauenswürdigen CA signiert ist, wird die Warnung angezeigt. In den meisten Fällen ist dies akzeptabel. Wenn es nicht, gehen Sie ein signiertes Zertifikat.</p>
<h2>Maßgebend Zertifikate</h2>
<h3>Kosten</h3>
<p>Maßgebend Zertifikate kann teuer werden, zum Beispiel Gebühren Verisign (das bekannteste CA) 1.499 $ pro Jahr für ihre empfohlene Zertifikat. Es gibt billige Alternativen (Ich kaufte vor kurzem ein Zertifikat von Go Daddy für $ 12,99) sowie ein paar freie Anbieter.</p>
<h3>Schlüssel erzeugen und CSR</h3>
<p>An erster Stelle steht, um ein Zertifikat Schlüssel und ein Certificate Signing Request (CSR) zu erstellen. Dies kann mit OpenSSL durchgeführt werden.</p>
<pre class="brush: php; title: ; notranslate">
apt-get update
apt-get install openssl

# replace bold type with your info
openssl req -new -newkey rsa:2048 -nodes -out www_example_com.csr -keyout www_example_com.key -subj &quot;/C=US/ST=Arizona/L=Scottsdale/O=Example Company Inc./CN=www.example.com&quot;
</pre>
<h3>Senden Sie die CSR</h3>
<p>Die oben erzeugt zwei Dateien, www_example_com.key und www_example.com.csr.</p>
<p>Sobald Sie sich für eine autoritativ Zertifikat signiert, werden Sie aufgefordert, die CSR-Datei oder ihrer Inhalte hochzuladen.</p>
<h3>Überprüfen Sie die Anfrage</h3>
<p>Die Zeichnungsberechtigung müssen die Gültigkeit des Antrags zu überprüfen, und dass es durch das Unternehmen, auf die die Domain in der Anfrage wird registriert, in der Regel durch Kontaktaufnahme mit dem administrativen Ansprechpartners für die Domain erfolgen eingereicht.</p>
<p>Weitere Schritte erforderlich bei der Beantragung einer Extended Validation (EV)-Zertifikat, das die Farbe der Adressleiste grün in neueren Browsern werden.</p>
<h3>Download von signierten Zertifikat</h3>
<p>Nach der Validierung wird Ihr Zertifikat (CRT) zum Download zur Verfügung. Höchstwahrscheinlich Ihre Signatur-Stelle wird auch eine Zwischen-CA-Zertifikat-Paket (Kette des Vertrauens).</p>
<p><strong>Hinweis:</strong> Sie sollten eine Sicherungskopie aller SSL zugehörigen Dateien zu machen.</p>
<h3>Generieren Sie PEM und Platzierung</h3>
<p>Generieren Sie die pem aus dem Schlüssel-und CRT-</p>
<p>cat www_example_com.key www.example.com.crt > cert.pem</p>
<p>Setzen Sie den generierten pem und mittleren Bündel (zB bundle.crt) in / etc / ssl / certs /, und sie read-only root.</p>
<pre class="brush: php; title: ; notranslate">
chown root:root *.pem *.crt
chmod 400 *pem *.crt
</pre>
<p>Konfiguration aktualisieren, aktivieren Sie SSL und laden webserver</p>
<h3>Apache-Konfiguration</h3>
<pre class="brush: php; title: ; notranslate">
&lt;VirtualHost *:443&gt;
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/cert.pem
    SSLCertificateChainFile /etc/ssl/certs/bundle.crt
&lt;/VirtualHost&gt;

a2enmod ssl

/etc/init.d/apache2 force-reload

/etc/lighttpd/conf-available/10-ssl.conf
$SERVER[&quot;socket&quot;] == &quot;0.0.0.0:443&quot; {
    ssl.engine  = &quot;enable&quot;
    ssl.pemfile = &quot;/etc/ssl/certs/cert.pem&quot;
    ssl.ca-file = &quot;/etc/ssl/certs/bundle.crt&quot;
}

lighty-enable-mod ssl

/etc/init.d/lighttpd force-reload
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/ssl-zertifikate-selbst-erstellen-und-unterzeichnen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backups sind noch nicht mühsam genug</title>
		<link>http://www.gnusolaris.org/backups-sind-noch-nicht-muhsam-genug</link>
		<comments>http://www.gnusolaris.org/backups-sind-noch-nicht-muhsam-genug#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:56:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=77</guid>
		<description><![CDATA[Nach Murphys Gesetz, alles, was schief gehen kann, wird schließlich schief gehen. Dies ist für Backups auf mehreren Ebenen wahr. Eine Sicherung ist oft unsere letzte Verteidigungslinie, wenn die Dinge schief gehen, aber so viele Dinge gehen kann mit dem Backup selbst, dass wir in der Regel nicht herausfinden, darüber, bis, nun ja, Schrecken aller [...]]]></description>
			<content:encoded><![CDATA[<p>Nach Murphys Gesetz, alles, was schief gehen kann, wird schließlich schief gehen.</p>
<p>Dies ist für Backups auf mehreren Ebenen wahr. Eine Sicherung ist oft unsere letzte Verteidigungslinie, wenn die Dinge schief gehen, aber so viele Dinge gehen kann mit dem Backup selbst, dass wir in der Regel nicht herausfinden, darüber, bis, nun ja, Schrecken aller Schrecken, schlägt die Sicherung falsch.</p>
<p><strong>An der Oberfläche können Backups für Abermillionen von Gründen fehlschlagen.</strong></p>
<p>Wenn Sie vor dem Spiel bist, kannst du wahrscheinlich mindestens ein Dutzend Gründe, warum Ihre Backups genau ausfallen wird, wenn Sie sie am meisten brauchen denken. Wenn Sie nicht können, haben Sie wahrscheinlich in einem falschen Gefühl der Sicherheit wiegen. Sie müssen nicht einmal wissen, was Sie wissen es nicht.</p>
<p>Aber das sind nur Symptome einer tiefer liegende Problem. Ja, Backups schwer zu bekommen Recht, aber der eigentliche Stachel ist, dass sie noch schwerer zu testen sind. Dies liegt daran, Wiederherstellung eines Systems aus dem Backup in die Produktion ist in der Regel eine arbeitsintensive, fehleranfällig, zeitaufwändig in Schmerzen.</p>
<p>In der realen Welt, würde es keine Rolle, wenn etwas schief geht, wenn (und das ist ein großer if) könnten wir leicht simulieren die worst case scenario on demand: restore unsere Systeme aus dem Backup und überprüfen, ob alles funktioniert &#8211; oder zu überprüfen, dass sie don &#8216;t, fix it, spülen-repeat.</p>
<p><strong>Bottom line? Wenige testen ihre Backups, und niemand testet sie häufig genug.</strong></p>
<p>Klar, wenn Sie die Ressourcen (wie viele nicht) haben, können Sie sich Ihren Weg durch das Problem bruteforce. Zum Beispiel mit dem richtigen Setup Sie tun können häufige Bit-für-Bit identisch Schnappschüsse von der zugrunde liegenden Speichermedien und senden Sie sie sicher an Ort und über eine sehr hohe Bandbreite Netzwerk-Anschluss (und umgekehrt). Aber solche bruteforce Backup-Strategien sind extrem ineffizient und oft unpraktisch wegen der Kosten.</p>
<p>In den Worten von Mat Kearney &#8211; was ist ein Junge zu tun?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/backups-sind-noch-nicht-muhsam-genug/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updaten der Django settings.py für Programmierung und Entwicklung</title>
		<link>http://www.gnusolaris.org/updaten-der-django-settings-py-fur-programmierung-und-entwicklung</link>
		<comments>http://www.gnusolaris.org/updaten-der-django-settings-py-fur-programmierung-und-entwicklung#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:55:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=79</guid>
		<description><![CDATA[So entwickelte ein Django Web-Anwendung, und jetzt müssen Sie es in die Produktion bereitstellen, müssen aber noch weiter aktiv die Entwicklung (Bugfixes, Tweaks, Hinzufügen und Testen neuer Funktionen, etc.) In der Entwicklungsumgebung Sie hatte wahrscheinlich Debuggen aktiviert, Performance-Einstellungen deaktiviert, verwendet SQLite als Datenbank und andere Einstellungen, die Entwicklung einfacher und schneller zu machen. Aber in [...]]]></description>
			<content:encoded><![CDATA[<p>So entwickelte ein Django Web-Anwendung, und jetzt müssen Sie es in die Produktion bereitstellen, müssen aber noch weiter aktiv die Entwicklung (Bugfixes, Tweaks, Hinzufügen und Testen neuer Funktionen, etc.)</p>
<p>In der Entwicklungsumgebung Sie hatte wahrscheinlich Debuggen aktiviert, Performance-Einstellungen deaktiviert, verwendet SQLite als Datenbank und andere Einstellungen, die Entwicklung einfacher und schneller zu machen.</p>
<p>Aber in der Produktion benötigen, um das Debuggen zu deaktivieren, damit Leistung und Verwendung einer echten Datenbank wie MySQL oder PostgreSQL, etc.</p>
<p>Ich hoffe, Ihre Entwicklungsumgebung können Ihre Produktionsumgebung sowie zu simulieren, eine Art Inszenierung, so dass Ihre letzte Tests vor der Bereitstellung bietet die kleinste Delta.</p>
<ul>
<li>Manchmal müssen Sie den vollen Produktionsumgebung zu emulieren.</li>
<li>Manchmal müssen Sie den vollständigen Entwicklungsumgebung zu emulieren.</li>
<li>Manchmal ist eine Mischung aus beiden.</li>
</ul>
<p>Dies führt zu der Frage, wie Sie nahtlos verwalten Sie Ihre Entwicklung und Herstellung Einstellungen ohne Zugabe von Overhead?</p>
<p>Es stellt sich heraus gibt es sehr viele Diskussionen darüber, wie Django settings.py, dass sowohl eine Entwicklungs-und Produktionsumgebung unterstützt, zum Beispiel Setup:</p>
<ul>
<li>Ganz anders settings.py Dateien (in der Regel konfigurieren Sie den Webserver, um die Produktion Einstellungen, um die Python-Pfad hinzufügen, und verwenden Sie die Standard-(Entwicklungs-) Einstellungen bei der Verwendung des dev Webserver.</li>
<li>Mit dem Hostnamen</li>
<li>Durch die variable (PRODUKTION = True)</li>
</ul>
<p>Wir haben vor kurzem kam in dieser Frage, wenn wir bereit zur schlüsselfertigen Hub in die Produktion einzusetzen waren.</p>
<p>Ich wusste nicht wirklich, wie die oben genannten Lösungen, so ist dies, was ich kam mit:</p>
<ul>
<li>Settings.py (full-Einstellungen für die Produktion)</li>
<li>Einstellungen-dev.py (Override Produktion für die vollständige Entwicklung)</li>
</ul>
<p>Wenn die Umgebungsvariable ENTWICKLUNG gesetzt ist, verwenden Sie die Einstellungen-dev, um die Produktion zu überschreiben.</p>
<p>Ich war mit der Idee, die volle Kontrolle über die Einstellungen über die Umwelt haben liebäugelt, für maximale Flexibilität, aber am Ende dagegen entschieden, da es zu viel Komplexität hinzugekommen nicht genug bekommen.</p>
<p>Unsere settings_dev.py sieht etwa so aus:</p>
<pre class="brush: php; title: ; notranslate">
DEBUG = True
TEMPLATE_DEBUG = True

COMPRESS_AUTO = True
SESSION_COOKIE_SECURE = False

DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = '/tmp/dev.db'
DATABASE_USER = ''
DATABASE_PASSWORD = ''

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source',
    'django.template.loaders.app_directories.load_template_source',
)
</pre>
<p>Die settings.py (full-Einstellungen für die Produktion) umfasst die folgenden Ausschnitt am Ende.</p>
<pre class="brush: php; title: ; notranslate">
if os.environ.get('DEVELOPMENT', None):
    from settings_dev import *
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/updaten-der-django-settings-py-fur-programmierung-und-entwicklung/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effiziente Stapelverarbeitung mit Drupal und CCK</title>
		<link>http://www.gnusolaris.org/effiziente-stapelverarbeitung-mit-drupal-und-cck</link>
		<comments>http://www.gnusolaris.org/effiziente-stapelverarbeitung-mit-drupal-und-cck#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:53:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=82</guid>
		<description><![CDATA[In einem früheren Beitrag habe ich erklärt, warum wir den größten Teil der Bilder auf dieser Seite von PNG zu JPG und wie wir verwendet ImageMagick zu Charge zu konvertieren entschieden. Was ich nicht in zu erhalten ist, wie wir Drupal, unser CMS, aktualisiert, um auf all diese neu konvertierte Dateien verweisen. Manuelles Hochladen und [...]]]></description>
			<content:encoded><![CDATA[<p>In einem früheren Beitrag habe ich erklärt, warum wir den größten Teil der Bilder auf dieser Seite von PNG zu JPG und wie wir verwendet ImageMagick zu Charge zu konvertieren entschieden.</p>
<p>Was ich nicht in zu erhalten ist, wie wir Drupal, unser CMS, aktualisiert, um auf all diese neu konvertierte Dateien verweisen. Manuelles Hochladen und Aktualisieren fast 200 neue Bilder über ein Web-Formular ist zeitraubend und langweilig. Die Suche nach einer nicht arbeitsintensiv Lösung kann auch zeitaufwendig sein &#8230; aber so viel interessanter!</p>
<p>Sobald Sie wissen, wie, es ist nicht wirklich schwer.</p>
<p>Hier ein einfaches Beispiel:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

error_reporting(E_ALL);
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

$results = db_query('select nid from node where type=&quot;appliance&quot;');
while ($result = db_fetch_object($results)) {
  $node = node_load($result-&gt;nid);

  # useful if you don't know $node like the back of your hand
  print &quot;&lt;pre&gt;&quot;;
  print htmlspecialchars(print_r($node, TRUE), ENT_QUOTES);
  print &quot;&lt;/pre&gt;&quot;;

  # somewhat useless example edit
  $name = strtolower($node-&gt;field_name[0]['value']);
  $node-&gt;field_name[0]['value'] = $name;
  node_save($node);
}

?&gt;
</pre>
<p>Speichern Sie diese als temporäre PHP-Skript in Ihrem Web-Root, in Ihrem Browser um die Position und walla! Sie müssen nur in Kleinbuchstaben den Wert des CCK Feld für alle Geräte-Knoten.</p>
<p>Für Ihre eigene Bearbeitungen, die Sie sollten natürlich ersetzen Sie den Wert übergeben db_query (). Sie können Ansichten zum Erstellen dieser SQL-Abfrage.</p>
<p>Nutzung Views als SQL Query Builder ist besonders hilfreich bei komplexeren Anfragen.</p>
<p><strong>Aber warten Sie es gibt einen Haken!</strong></p>
<p>Es stellt sich heraus CCK-Datei-Felder sind ein besonderer Fall und Sie können nicht bearbeitet werden mit einem einfachen node_save (). Das liegt daran, $ node enthält einen Verweis auf das Feld Bereich Objekt, nicht das Objekt selbst zurück.</p>
<p>Dies verlangsamt mich ein bisschen, aber schließlich habe ich herausgefunden, wie man drupal_write_record verwenden, um die Datei-Tabelle zu aktualisieren:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

error_reporting(E_ALL);
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

function f(&amp;$s) {
    $s = str_replace(&quot;png&quot;, &quot;jpg&quot;, $s);
}

drupal_flush_all_caches();

$results = db_query('select nid from node where type=&quot;appliance&quot;');
while ($result = db_fetch_object($results)) {
  $node = node_load($result-&gt;nid);

  $file = $node-&gt;field_icon[0];

  f($file['filename']);
  f($file['filepath']);
  f($file['filemime']);

  $realpath = &quot;/path/to/webroot/&quot; . $file[filepath];
  $stat = stat($realpath);
  if(!$stat)
    continue;

  $file['filesize'] = $stat[7];

  print &quot;&lt;pre&gt;&quot;;

  print htmlspecialchars(print_r($file, TRUE), ENT_QUOTES);
  drupal_write_record('files', $file, 'fid');

  print &quot;&lt;/pre&gt;&quot;;
}

drupal_flush_all_caches();

?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/effiziente-stapelverarbeitung-mit-drupal-und-cck/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatisierte EC2 Instanzen mit User data Skripts</title>
		<link>http://www.gnusolaris.org/automatisierte-ec2-instanzen-mit-user-data-skripts</link>
		<comments>http://www.gnusolaris.org/automatisierte-ec2-instanzen-mit-user-data-skripts#comments</comments>
		<pubDate>Sun, 07 Aug 2011 11:53:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.gnusolaris.org/?p=89</guid>
		<description><![CDATA[Ich habe vor kurzem ec2metadata, die eine einfache CLI-und Python-Schnittstelle bietet, um die Metadaten eines Amazon EC2-Instanz veröffentlicht. In diesem Beitrag habe ich erwähnt, dass &#8220;eines der nützlichsten Teile der Daten User-Daten, die verwendet werden, um Konfigurations-Informationen oder sogar Initialisierung Skripte, um die Instanz übergeben beim Start werden kann&#8220;. Ich bekam ein paar Antworten per [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe vor kurzem ec2metadata, die eine einfache CLI-und Python-Schnittstelle bietet, um die Metadaten eines Amazon EC2-Instanz veröffentlicht. In diesem Beitrag habe ich erwähnt, dass &#8220;<em>eines der nützlichsten Teile der Daten User-Daten, die verwendet werden, um Konfigurations-Informationen oder sogar Initialisierung Skripte, um die Instanz übergeben beim Start werden kann</em>&#8220;.</p>
<p>Ich bekam ein paar Antworten per E-Mail Bitte um weitere Informationen, so ist es hier.</p>
<p>Aber zuerst, lassen Sie mich nur bedanken Eric Hammond (und RightScale) für die Idee. Unten ist eine Python-Implementierung, die ec2metadata nutzt als Kommunikationsprotokoll Schicht.</p>
<p>Unterstützung für benutzerdefinierte Daten-Skripte (ec2metadata, 25ec2-userdata) ist in den neuesten TurnKey AMI enthalten. Wenn Sie den Mechanismus Setup wie oben beschrieben sollte es auf eigene Faust AMIs zu arbeiten.</p>
<h3>Verwendung</h3>
<p>Es ist ganz einfach. Wenn der Benutzer-Daten beginnt der Inhalt mit den beiden Zeichen #! (Shebang), wird sie ausgeführt werden. Wenn kein Benutzer-Daten angegeben ist, oder nicht mit #! Starten, passiert nichts.</p>
<h4>Starten einer Instanz mit User-Daten</h4>
<p>Beim Starten einer Instanz, geben Sie die Benutzer-Daten-Datei zu der Instanz übergeben.</p>
<p>Zum Beispiel:</p>
<pre class="brush: php; title: ; notranslate">
ec2-run-instances --key KEYPAIR --user-data-file USERDATA_FILE ami-cbc12fa2</pre>
<p>Das obige Beispiel verwendet die Amazon EC2 CLI-Tools, aber es ist möglich, benutzerdefinierte Daten über die AWS-Konsole als auch weitergeben. Die AMI angegeben wird, dass von schlüsselfertigen Kern in der US-EAST-1 Region, die komplette Liste der verfügbaren AMI ist hier.</p>
<h4>Beispiel User-Daten-Skript</h4>
<pre class="brush: php; title: ; notranslate">
#!/bin/bash -ex
install()
{
    apt-get update
    DEBIAN_FRONTEND=noninteractive apt-get -y \
        -o DPkg::Options::=--force-confdef \
        -o DPkg::Options::=--force-confold \
        install $@
}

# installs hello - a highly useful package
install hello

# tell the world what we've done!
echo 'Hello world - I just executed user-data!' &gt; /root/helloworld
</pre>
<h3>Der Code</h3>
<p>Das folgende Skript hängt ec2metadata und basiert auf firstboot von inithooks auf TurnKey AMI ausgeführt.</p>
<p><strong>/usr/lib/inithooks/firstboot.d/25ec2-userdata</strong></p>
<pre class="brush: php; title: ; notranslate">
#!/usr/bin/python
# Copyright (c) 2010 Alon Swartz &lt;alon@turnkeylinux.org&gt; - all rights reserved

import os
import shutil
import tempfile

import executil
import ec2metadata

class TempFile(file):
    def __init__(self, prefix='tmp', suffix=''):
        fd, path = tempfile.mkstemp(suffix, prefix)
        os.close(fd)
        self.path = path
        self.pid = os.getpid()
        file.__init__(self, path, &quot;w&quot;)

    def __del__(self):
        if self.pid == os.getpid():
            os.remove(self.path)

def main():
    userdata = ec2metadata.get('user-data')

    if userdata and userdata.startswith(&quot;#!&quot;):
        fh = TempFile(prefix=&quot;ec2userdata&quot;)
        fh.writelines(userdata)
        fh.close()

        os.chmod(fh.path, 0750)
        executil.system(fh.path)
        print &quot;# executed ec2 user-data script&quot;

if __name__ == &quot;__main__&quot;:
    main()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.gnusolaris.org/automatisierte-ec2-instanzen-mit-user-data-skripts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

