Beim Starten einer neuen Instanz haben Sie die Möglichkeit ein Post-Creation Script anzugeben um die Instanz individuell nach dem Booten zu konfigurieren. OpenStack nutzt für Post-Creation Scripte den Cloud Init Standard zum dem Sie bei readthedocs.org eine umfangreiche Dokumentation finden.

Nachfolgend haben wir Ihnen ein paar verschiedene Beispiele für Cloud-Init Scripts aufgeführt.

MySQL Server installieren

In diesem Beispiel wird in der neuen Instanz ein MySQL Server installiert und konfiguriert.

#cloud-config
# vim: syntax=yaml
# WordPress installieren.
package_upgrade: true
packages:
- mysql-server

# Binde mysql an alle Interfaces
# mysql neu starten.
runcmd:
- sed -i".bak" -re 's/^(bind-addresss+)= (127.0.0.1)/1= 0.0.0.0/' /etc/mysql/my.cnf
- service mysql restart

WordPress installieren

Dieses Beispiel zeigt wie man ein aktuelles WordPress aus den Download Quellen installiert.

#cloud-config
# vim: syntax=yaml
# WordPress installieren.
package_upgrade: true
packages:
 - libapache2-mod-php5
 - php5-mysql

# WordPress download, auspacken
# und Rechte setzen
# apache neu starten.
runcmd:
 - cd /var/www; wget -O- http://de.wordpress.org/wordpress-3.8.1-de_DE.tar.gz | tar xz
 - chown -R www-data:www-data /var/www/wordpress/
 - service apache2 restart

DNS Server einer Instanz anpassen

Hat man z.B. auf seinem Jumphost einen eigenen DNS-Server konfiguriert, kann man mit diesem Beispiel diesen in den Instanzen vorkonfigurieren.

#cloud-config
# vim: syntax=yaml
# Keinen DNS Server von openstack anfordern
# Unseren Jumphost als DNS server setzen
# Und aktivieren
runcmd:
 - sed -i".bak" -e "s/domain-name-servers,//" /etc/dhcp/dhclient.conf
 - if [[ -f /etc/network/interfaces.d/eth0.cfg ]]; then FILE="/etc/network/interfaces.d/eth0.cfg"; else FILE="/etc/network/interfaces"; fi; echo "  dns-nameservers XXX.XXX.XXX.XXX" >> $FILE;
 - ifdown eth0 && ifup eth0

Achten Sie bitte darauf die IP-Adresse Ihres DNS-Servers anstelle von XXX.XXX.XXX.XXX einzutragen!

Die wichtigsten OpenStack Commandline Tools installieren

#cloud-config
# Ubuntu havana repository hinzufügen
# und pakete upgraden
apt_upgrade: true
apt_sources:
- source: "ppa:ubuntu-cloud-archive/havana-staging"

package_upgrade: true
packages:
- python-novaclient
- python-cinderclient
- python-glanceclient
- python-keystoneclient
- python-neutronclient
- python-swiftclient
zurück zur Übersicht