Catégorie : DevOps

Microsoft Azure Stack – Technical Paper

Hi !

Today, I would like to share with you an exellent paper written by Florent Appointer MVP (Cloud and Datacenter Management) .

Azure Stack extends the Azure vision by bringing the cloud model of computing to every datacenter. Azure Stack is a new hybrid cloud platform product that enables organizations to deliver Azure services from their own datacenter in a way that is consistent with Azure.

Organizations can create these Azure services from datacenter resources – enabling developers and IT professionals to quickly provision and scale services using the same self-service experience found in Azure. This all adds up to an environment in which application developers can maximize their productivity using a ‘write once, deploy to Azure or Azure Stack’ approach, because the Azure APIs are consistent regardless of where the resources are provisioned – Azure Stack is simply an extension of Azure.

Here’s a simplified view of the Azure Stack architecture.

azure-stack-architectureThis paper should focus on how you can deploy an Azure Stack Lab Technical Preview 1, with all installation steps.

https://gallery.technet.microsoft.com/Implement-Azure-Stack-and-56c05f85

Thanks Florent and good reading !

Windows 10 RTM – Activation

Salut !

Cette semaine est sortie la version RTM de Windows 10 Build 10240.

Il se peut que vous rencontriez une erreur lors de l’activation de cette version, pour corriger cela vous pouvez depuis une invite de commande (Executer en Administrateur):

Slmgr - ipk  xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
  • Windows 10 Home build 10240 TX9XD98N7V6WMQ6BX7FGH8Q99
  • Windows 10 Pro build 10240 VK7JGNPHTMC97JM9MPGT3V66T
  • Windows 10 Enterprise build 10240 NPPR9FWDCXD2C8JH872K2YT43

Bon week-end,

Max.

Docker – DockerFile

Salut !

Après avoir vu comment mettre en place une plateforme docker dans un environnement Windows, nous allons voir ensemble comment automatiser le déploiement de ces conteneurs Docker.

Pour cela, nous allons créer un fichier d’automatisation des actions (DockerFile) pour déployer un conteneur de manière autonome.

Dans notre scénario nous souhaitons:

  • Récupérer un conteneur Debian depuis le Hub officiel
  • Installer Apache2, Php, Sqlite, Curl …
  • Déployer un blog WordPress

A la fin de l’exécution de ce dockerfile, nous aurons ainsi une plateforme de blog WordPress opérationnelle.

  • DockerFile:

Pour déployer un dockerfile facilement dans un environement Boot2docker, je vous recommande de transférer votre fichier dockerfile à l’aide SCP (Vous pouvez utiliser l’utilitaire WinSCP par exemple). Le nom d’utilisateur et mot de passe de la machine virtuelle Boot2docker sont : nom utilisateur: docker ; mot de passe: tcuser

FROM debian:wheezy
MAINTAINER ZiGMaX (zigmax.net)

# Download Apache2/Curl/Php/rsync/wget/unzip
RUN apt-get update && apt-get install -y \
apache2 \
curl \
libapache2-mod-php5 \
php5-curl \
php5-sqlite \
php5-gd \
rsync \
wget \
unzip \
&& rm -rf /var/lib/apt/lists/*

# A2enmod
RUN a2enmod rewrite

# Download and extract wordpress
RUN rm -rf /var/www/
ADD http://wordpress.org/latest.tar.gz /wordpress.tar.gz
RUN tar xvzf /wordpress.tar.gz
RUN mv /wordpress /var/www/
# Fix permissions on all of the files
RUN chown -R www-data:www-data /var/www/

# Sqlite WordPress plugin
RUN curl -o sqlite-plugin.zip https://downloads.wordpress.org/plugin/sqlite-integration.1.8.1.zip
RUN unzip sqlite-plugin.zip -d /var/www/wp-content/plugins/
RUN rm sqlite-plugin.zip
RUN cp /var/www/wp-content/plugins/sqlite-integration/db.php /var/www/wp-content
RUN cp /var/www/wp-config-sample.php /var/www/wp-config.php

#Manually set Apache variables
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2

# Expose port 80 and run Apache
EXPOSE 80
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]

 

  • Comprendre le DockerFile

MAINTAINER : nom du mainteneur du DockerFile (Ici c’est nous !)

FROM : image de base (Dans notre scénario Debian)

VOLUME : Point de montage (Non utilisé dans notre scénario)

RUN : commande à exécuter pour installer le conteneur. (Dans notre cas, nous utilisons la commande RUN à de nombreuses reprises pour lancer des commandes « système »)

ENTRYPOINT : commande qui s’exécute au démarrage du conteneur (une seule sera exécutée).

CMD : commande qui s’exécute au démarrage du conteneur.

ADD : Copier un fichier du répertoire courant dans le filesystem du conteneur. (Dans cet exemple pour récupérer la dernière version de WordPress)

USER : utilisateur qui exécute les commandes dans le conteneur. (Non utilisé dans notre scénario)

EXPOSE : Port(s) à exposer à l’exterieur (Dans notre cas le port du serveur web apache)

 

  • Executer son DockerFile

sudo docker build -t dockerwp .

Attention le « . » permet de rechercher un fichier DockerFile dans votre répertoire courant.

 

  • DockerFile: Translation de port

docker run -d -p 80:80 dockerwp

dockerfilewp

 

 

Comme vous avez pu le constater, la syntaxe d’automatisation du DockerFile est plutôt simple. Il est également possible de faire appel à des scripts shells externes ou encore à des agents Puppet / Chef (Je ferai un article pour vous faire une démo prochainement).