In diesem Tutorial verwenden Sie ** Ansible ** und ** Jenkins **, um ein Image aus Tomcat, ** Java ** und MySQL in ** Alibaba Cloud ** bereitzustellen.
Überprüfen Sie anschließend nach dem Einrichten der Master / Slave-Umgebung (Agent) für den Jenkins-Server den Status des Servers, um sicherzustellen, dass der Agent normal ausgeführt wird. Insbesondere in meinem Setup verwende ich den Masterknoten als Jenkins-Server und den Agentencomputer für Ansible. Wenn Sie möchten, können Sie nur einen Computer haben, indem Sie Ansible auf dem Master selbst installieren.
Installieren Sie dann das Ansible Tool auf den Master- und Agent-Computern.
Stellen Sie Ansible vor. Ansible ist ein leistungsstarkes Tool für die IT-Automatisierung, das im CI / CD-Prozess verwendet werden kann, um eine Zielumgebung bereitzustellen und Anwendungen darauf bereitzustellen. Beachten Sie jedoch, dass die Wartung von Ansible umständlich ist und Skripte auf lange Sicht wiederverwendet. Dies ist nützlich, wenn Sie dieselbe Aufgabe auf verschiedenen Servern / Umgebungen von einem zentralen Ort aus ausführen möchten, an dem Ansible installiert ist. Ansible ist völlig agentenlos, also Chef und Puppet Es hat einen Vorteil gegenüber anderen IaC-Tools (Infrastructure-as-Code) wie a2c65.11461447.0.0.53a46c64aNElRK. Mit Ansible muss kein Agent auf dem Client-System installiert werden, und die SSH-Kommunikation zwischen Client und Server bietet Automatisierung. Mit Hunderten von Instanzen in einer bestimmten Region ist die gesamte Automatisierung einfach. Ansible Playbooks sind in der Sprache YAML / YML geschrieben.
Wenn es um Ansible geht, sind auch die folgenden Kenntnisse erforderlich.
--Control Node: Der Computer, der für den Server verantwortlich ist, den Ansible installiert und verwaltet. --Inventory: Eine Datei, die den Host und die Hostgruppe definiert, auf denen Befehle, Module und Aufgaben in einem Playbook ausgeführt werden. Diese Datei kann je nach Ansible-Umgebung und Plug-In in einem von vielen Formaten vorliegen. Wird verwendet, um an anderer Stelle eine projektspezifische Inventardatei zu erstellen. --Playbook: Teil der Konfigurations-, Bereitstellungs- und Orchestrierungssprache von Ansible. Sie können die Richtlinie beschreiben, die Sie auf das Remote-System anwenden möchten, und die Reihenfolge der Schritte.
Installieren Sie zuerst das Ansible-Plug-In auf Jenkins. Führen Sie dazu die folgenden Schritte aus.
Hinweis: Installieren Sie nicht Ansible Tower, das für das aktuelle Setup in diesem Lernprogramm nicht erforderlich ist.
Nach der Installation des Ansible-Plug-Ins auf Jenkins besteht der nächste Schritt darin, Ansible auf dem Client / Agent-Computer zu installieren.
Das Alibaba Ansible-Modul wird regelmäßig aktualisiert. Die neueste Version finden Sie unter GitHub Link. Ich empfehle es.
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
Ich habe Ansibles Playbook-Skript für die Bereitstellung von Alibaba ECS [hier] erstellt (https://github.com/nadaraj15/alibaba_ansible/?spm=a2c65.11461447.0.0.53a46c64aNElRK). Sie können den Quellcode teilen und den Wert des Parameters an Ihre Umgebung anpassen.
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"
Hinweis: Ich importiere Bilder von Alibaba Application Stacks, die von Zhuyun bereitgestellt werden. Hier überprüfen. Es besteht aus Linux, Nginx, MySQL und Jdk-Tomcat (Nginx1.6-jdk1.7-tomcat7-mysql5.5-vsFTPd2.2.2).
Jetzt ist es Zeit, den Zugangsschlüssel und das Geheimnis zu generieren. Führen Sie dazu die folgenden Schritte aus.
Hinweis: Wenn Sie das Dialogfeld schließen, sind die AccessKey-Informationen nicht mehr verfügbar. Daher ist es wichtig, diese Informationen zu kopieren und zu speichern, bevor Sie das Dialogfeld schließen.
Anmerkung 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
Die Bild-ID jeder Region wird unten angezeigt (für Linux-, Nginx-, MySQL-, Jdk-Tomcat-Bilder). Natürlich müssen Sie die Bild-ID je nach Region ändern.
Gehen Sie folgendermaßen vor, um eine Alibaba-VM mithilfe eines Jenkins-Jobs zu erstellen und bereitzustellen:
SCM: - Git Repository-URL: -GitHub-Link mit geänderten Parametern Beispiel: https://github.com/nadaraj15/alibaba_ansible/ Anmeldeinformationen: -None (Öffentliches Repository, also Anmeldeinformationen in Jenkins speichern, wenn privat) Zweigspezifizierer (leer für '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-Pfad: --AliVM.yml (Name des Playbooks) --Inventar: --Wählen Sie "Inventar nicht angeben" --Credentials: -Select None (Ich habe die Anmeldeinformationen in die Bereitstellungsdatei eingebettet, damit ich die Anmeldeinformationen als Umgebungsvariable übergeben kann.)
Hinweis: Wenn "jenkins_home" Ihr Standort ist, wird der Standardpfad auf "/ var / jenkins_home" gesetzt. Wenn Sie jedoch einen benutzerdefinierten Speicherort haben, können Sie diesen Speicherort stattdessen verwenden.
sudo rm -rf /var/jenkins_home/workspaces/<workspace_name>
Sie haben jetzt eine Instanz bereitgestellt, auf der Tomcat, Java und MySQL installiert sind. Wenn Sie die öffentliche Browseradresse eingeben, die dem Browser entspricht, können Sie sehen, dass die Apache Tomcat-Seite ausgeführt wird, da der Webserver über Port 80 der öffentlichen IP-Adresse der VM verfügbar gemacht wird.
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