Happy New Year 2018 !

Salut!

Je vous adresse tous mes voeux de bonheur, santé et succès pour cette nouvelle année 😉 !

Cette année, je vais continuer à vous partager mes notes / articles / preuves de concept sur les thématiques suivantes :

  • Infrastructure as code dans Azure
  • DevOps / SecOps (Azure Security)
  • Kubernetes / Terraform.

Tous les posts de ce blog ne reflètent que mon opinion et pas celui de mes employeurs et clients.

Max.

Déployer des serveurs VPNs dans Azure avec OpenVPN

Salut,

Avec le nombre de régions Azure, il devient assez simple de créer des serveurs VPNs aux quatre coins du monde. Dans cet article, nous allons voir ensemble comment déployer un serveur OpenVPN sur Azure.

Etape 1: Créer une instance A0 avec Ubuntu 16.04 LTS. Dans notre exemple, notre serveur VPN sera situé en Inde, plus spécifiquement dans la région Central India.

Etape 2: Ouvrir les ports: TCP/443, TCP/943, UDP/1194.

Refaire cette étape pour ouvrir les ports : TCP/943, UDP/1194.

Etape 3: Installer OpenVPN

sudo apt-get update
sudo wget http://swupdate.openvpn.org/as/openvpn-as-2.1.12-Ubuntu16.amd_64.deb
sudo dpkg -i openvpn-as-2.1.12-Ubuntu16.amd_64.deb

Etape 4: Configurer le compte administrateur

sudo passwd openvpn

Etape 5: Créer vos comptes utilisateurs

sudo adduser maxime

Etape 6: Configurer OpenVPN

Au sein de votre navigateur, https://@azureinstanceip/admin/

Se rendre dans l’onglet : Server Network Settings, puis remplacer IP Address par l’adresse IP de votre instance Azure.

Valider les changements en cliquant sur Save puis Update Running Server.

Etape 7: Se connecter depuis un client

Depuis votre navigateur se rendre sur : https://@azureinstanceip:943

Cliquer sur : Yourself (user-locked profile) afin de télécharger le profil de votre connexion. Vous pouvez-vous que OpenVPN, fonctionne sur iOS (utilisé dans cet example), OSX, Android, Linux et Windows.

Utiliser Jenkins pour déployer dans Azure

Salut!

Mon objectif au sein de cet article sera de vous présenter comment déployer un serveur Jenkins qui vous permettra de déployer des ressources dans Azure depuis un Hook Github.

Au sommaire:

  • Etape 1: Requis nécessaire au déploiement de Jenkins
  • Etape 2 : Déployer Jenkins
  • Etape 3: Installation d’Azure CLI
  • Etape 4: Initialiser le compte Admin
  • Etape 5: Créer un Azure Service Principal
  • Etape 6: Configuration des plugins Jenkins (Azure Credentials/Azure CLI)
  • Etape 7: Configurer une Job Jenkins – « Déployer une VM Ubuntu depuis Jenkins »
  • Etape 8: Configuration une Job Jenkins -« Déployer dans Azure depuis un Hook Jenkins »

Requis:

  • Souscription Azure
  • Azure Cloud Shell (PowerShell)
  • Un compte Github

Etape 1 : Requis nécessaire au déploiement de Jenkins

cd c:\users\containeradministrator\CloudDrive\

vim cloud-init-jenkins.txt

#cloud-config

package_upgrade: true

runcmd:

 – wget -q -O – https://jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add –

 – sh -c ‘echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’

 – apt-get update && apt-get install jenkins -y

 – service jenkins restart

Etape 2 : Déployer Jenkins

az group create –name myResourceGroupJenkins –location eastus

az vm create –resource-group myResourceGroupJenkins –name myVM –image UbuntuLTS –admin-username azureuser –generate-ssh-keys –custom-data cloud-init-jenkins.txt

az vm open-port –resource-group myResourceGroupJenkins –name myVM –port 8080 –priority 1001

az vm open-port –resource-group myResourceGroupJenkins –name myVM –port 1337 –priority 1002

az vm show –resource-group myResourceGroupJenkins –name myVM -d –query [publicIps] –o tsv

ssh azureuser@<publicIps>

Etape 3: Installation d’Azure CLI

echo « deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main » | sudo tee /etc/apt/sources.list.d/azure-cli.list

sudo apt-key adv –keyserver packages.microsoft.com –recv-keys 417A0893

sudo apt-get install apt-transport-https

sudo apt-get update && sudo apt-get install azure-cli

Etape 4: Initialiser le compte Admin

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

http://<publicIps>:8080

Etape 5: Créer un Azure Service Principal

az ad sp create-for-rbac –name jenkins_sp –password jenkins_sp

{
   « appId »: « BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBB »,
   « displayName »: « jenkins_sp »,
   « name »: « http://jenkins_sp »,
   « password »: « secure_password »,
   « tenant »: « CCCCCCCC-CCCC-CCCC-CCCCCCCCCCC »
}
az account list
{
      « cloudName »: « AzureCloud »,
      « id »: « AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA »,
      « isDefault »: true,
      « name »: « Visual Studio Enterprise »,
      « state »: « Enabled »,
      « tenantId »: « CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCC »,
      « user »: {
      « name »: « max@fabrikam.com »,
      « type »: « user »
      }

Etape 6: Configuration des plugins Jenkins (Azure Credentials / Azure CLI)

  • Installer le plugin Azure Credentials

  • Installer Azure CLI

Etape 7: Configurer une Job Jenkins – « Déployer une VM Ubuntu depuis Jenkins » 

Se référer à l’étape 3 : Créer un Azure Service Principal”

az group create –name jenkinsprovisonned –location eastus
az vm create –resource-group jenkinsprovisonned –name demo01 –image UbuntuLTS –admin-username maxime –admin-password IloveAzureMeetupQC17!

Etape 8: Configuration une Job Jenkins – “Déployer dans Azure depuis un Hook Jenkins”

Configurer l’adresse de Jenkins pour le Hook

Créer un nouveau: Freestyle project

Lancer l’execution : Faire un Commit de ce que vous souhaitez dans votre repo 🙂