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 🙂