Dans ce tutoriel, vous utiliserez ** Ansible ** et ** Jenkins ** pour déployer une image composée de Tomcat, ** Java ** et MySQL sur ** Alibaba Cloud **.
Ensuite, après avoir configuré l'environnement maître / esclave (agent) pour le serveur Jenkins, vérifiez l'état du serveur pour vous assurer que l'agent fonctionne normalement. Surtout dans ma configuration, j'utilise le nœud maître comme serveur Jenkins et la machine d'agent pour Ansible. Si vous le souhaitez, vous ne pouvez avoir qu'une seule machine en installant Ansible sur le maître lui-même.
Ensuite, installez Ansible Tool sur les machines maître et agent.
Présentez Ansible. Ansible est un outil puissant d'automatisation informatique qui peut être utilisé dans le processus CI / CD pour provisionner un environnement cible et y déployer des applications. Cependant, sachez qu'Ansible est fastidieux à maintenir et réutilisera les scripts à long terme. Ceci est utile si vous souhaitez effectuer la même tâche sur différents serveurs / environnements à partir d'un emplacement centralisé où Ansible est installé. Ansible est totalement sans agent, donc Chef et Puppet Il a un avantage par rapport aux autres outils IaC (Infrastructure-as-Code) tels que a2c65.11461447.0.0.53a46c64aNElRK). Avec Ansible, il n'est pas nécessaire d'installer un agent sur le système client, et la communication SSH entre le client et le serveur permet l'automatisation. Avec des centaines d'instances dans une région donnée, toute l'automatisation est facile. Les playbooks Ansible sont écrits en langage YAML / YML.
En ce qui concerne Ansible, les connaissances suivantes sont également nécessaires.
Tout d'abord, installez le plug-in Ansible sur Jenkins. Pour faire ça, suit les étapes suivantes.
Remarque: n'installez pas Ansible Tower, qui n'est pas nécessaire pour la configuration actuelle utilisée dans ce didacticiel.
Après avoir installé le plug-in Ansible sur Jenkins, l'étape suivante consiste à installer Ansible sur la machine client / agent.
Le module Alibaba Ansible est mis à jour fréquemment, veuillez donc vous référer au GitHub lien pour la dernière version. Je le recommande.
sudo yum check-update; sudo yum install -y gcc libffi-devel python-devel openssl-devel epel-release
sudo yum install -y python-pip python-wheel
sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip
sudo pip install ansible
sudo pip install ansible_alicloud
sudo pip install ansible_alicloud_module_utils
J'ai créé le script de playbook d'Ansible pour provisionner Alibaba ECS ici. Vous pouvez bifurquer le code source et modifier la valeur du paramètre en fonction de votre environnement.
alicloud_access_key: <Alibaba Access Key>
alicloud_secret_key: <Alibaba Secret Key>
alicloud_region: <Alibaba Region for your resource> e.g. - ap-south-1
alicloud_zone: <Alibaba Zone for your resource> e.g. ap-south-1a
password: <New VM Password>
image: "m-a2d4qmk8v2w9s5wmh0rw"
Remarque: j'importe des images à partir des piles d'applications Alibaba fournies par Zhuyun. Veuillez vérifier ici. Il se compose de Linux, Nginx, MySQL et Jdk-Tomcat (Nginx1.6-jdk1.7-tomcat7-mysql5.5-vsFTPd2.2.2).
Il est maintenant temps de générer la clé d'accès et le secret. Pour faire ça, suit les étapes suivantes.
et ʻAccessKeySecret
, qui sont les valeurs de ʻalicloud_access_key et ʻalicloud_secret_key
dans le playbook.Remarque: Si vous fermez la boîte de dialogue, les informations AccessKey ne seront plus disponibles. Par conséquent, il est important de copier et d'enregistrer ces informations avant de fermer la boîte de dialogue.
Note 1.
#!/usr/bin/env bash
for region in $( aliyun ecs DescribeRegions | jq '.Regions.Region[].RegionId' )
do
echo $region
reg=$( echo $region | sed s/\"//g )
echo '---'
for zone in $( aliyun ecs DescribeZones --RegionId $reg | jq '.Zones.Zone[].ZoneId' | sort )
do
echo $zone
done
echo ''
done
alicloud_region: cn-beijing
alicloud_zone: cn-beijing-a
L'ID d'image de chaque région est indiqué ci-dessous (pour les images Linux, Nginx, MySQL, Jdk-Tomcat). Bien sûr, vous devez changer l'ID de l'image en fonction de la région.
Pour créer et déployer une machine virtuelle Alibaba à l'aide d'un travail Jenkins, procédez comme suit:
SCM: - Git URL du référentiel: -Lien GitHub avec paramètres modifiés Exemple: https://github.com/nadaraj15/alibaba_ansible/ Informations d'identification: -Aucun (référentiel public, donc stockez les informations d'identification dans Jenkins si elles sont privées) Spécificateur de branche (vide pour «any»): - * / master
sudo apt-get update (Optional)
sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip (Optional)
sudo pip install ansible[azure]==2.7.0rc2 (Optional)
sudo apt-get install -y maven (Optional)
cd /usr/bin
sudo wget https://raw.githubusercontent.com/nadaraj15/alibaba_ansible/master/AliVM.yml
--Playbook path: --AliVM.yml (nom du playbook) --Inventaire: --Sélectionnez "Ne pas spécifier l'inventaire" --Credentials: -Select None (J'ai intégré les informations d'identification dans le fichier de déploiement afin que je puisse transmettre les informations d'identification en tant que variable d'environnement)
Remarque: Si jenkins_home
est votre emplacement, le chemin par défaut est défini sur / var / jenkins_home
. Cependant, si vous disposez d'un emplacement personnalisé, vous pouvez utiliser cet emplacement à la place.
sudo rm -rf /var/jenkins_home/workspaces/<workspace_name>
Vous avez maintenant déployé une instance avec Tomcat, Java et MySQL installés. Si vous entrez l'adresse IP publique correspondant au navigateur, vous pouvez voir que la page Apache Tomcat est en cours d'exécution car le serveur Web est exposé via le port 80 de l'adresse IP publique de la VM.
1、https://www.alibabacloud.com/blog/ci%2Fcd-with-jenkins---part-1%3A-install-jenkins-on-ubuntu_593717 2、https://www.alibabacloud.com/blog/continuous-integration-with-jenkins-on-alibaba-cloud_594512 3、https://www.alibabacloud.com/blog/594449 4、https://github.com/alibaba/ansible-provider 5、https://mohitgoyal.co/2017/02/14/add-linux-slave-node-in-the-jenkins/ 6、https://marketplace.alibabacloud.com/products/56728001/Tomcat_Nginx_My_SQL_Stack_Package_on_Ubuntu-cmjj011399.html?innerSource=search#product-details
Recommended Posts