Utilisez Jenkins pour créer un système de publication automatisé pour créer Jenkins
La perspective DevOps de Niu Hengbo
installation de Jenkins
installation
Définissez le répertoire jenkins Define jenkins dans catalina.sh
$ export CATALINA_OPTS="-DJENKINS_HOME=/path/to/jenkins_home/ -Xmx512m"
$ catalina.sh start
Définir jenkins dans les variables d'environnement Linux
$ export JENKINS_HOME=/path/to/jenkins_home/
$ catalina.sh start
Définir jenkins-home dans le contexte
<Context ...>
<Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
</Context>
Installation et initialisation
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
java -jar jenkins.war
http://localhost:8080
Installer des plugins communs
Choisissez d'installer
démarrer l'installation
Une fois l'installation du plug-in terminée, commencez à configurer le nom d'utilisateur et le mot de passe de l'administrateur. Commencez à utiliser Jenkins
Changer le répertoire personnel de jenkins
Le chemin par défaut du répertoire de base de jenkins est /root/.jenkins/ path. Selon la méthode de démarrage, la méthode de modification est légèrement différente.
1. Démarrez java -jar jenkins.war directement à partir de la ligne de commande
cat >>/etc/profile<<EOF
export JENKINS_HOME=/data/db/jenkins/
EOF
source /etc/profile
2. Commencez avec le conteneur tomcat
vim /data/app/tomcat/bin/catalina.sh
export JENKINS_HOME=/data/db/jenkins/
# OS specific support. $var _must_ be set to either true or false.
3. Modifiez le package jenkins.war (non recommandé)
vim jenkins /web.xml
<!-- if specified, this value is used as the Hudson home directory -->
<env-entry>
<env-entry-name>HUDSON_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/data/db/jenkins/</env-entry-value> #填入路径
</env-entry>
Commencez à installer le plugin
Les plug-ins sont les plus couramment utilisés dans jenkins, nous commençons donc par installer des plugins.
première méthode
Chemin: Gestion du système -> Gérer les plug-ins, commencer à installer les plug-ins.
- Plug-in de pipeline de construction: plug-in de configuration de processus de construction.
- Plugin Gitlab: plugin gitlab pull.
- Gitlab Hook Plugin: plugin gitlab hook.
- Build Authorization Token Root Plugin: Plug-in de vérification des autorisations utilisateur.
- SonarQube Scanner for Jenkins: plug-in de gestion de la qualité du code.
- Plugin de déclenchement à distance paramétré: plug-in de déclenchement à distance.
- AnsiColor (facultatif): ce plug-in peut faire colorer la sortie du journal par la console Jenkins (tout comme la console Linux)
- Plug-in d'intégration Maven
- Plug-in Extended Choice Parameter: interface graphique pour configurer des paramètres à choix multiples
Deuxième méthode
Télécharger le plugin Jenkins-plugin management-advanced-upload plugin
Troisième méthode
Téléchargez directement dans le répertoire du fichier (selon le chemin du fichier de mot de passe ci-dessus, vous pouvez savoir que le répertoire jenkins est dans /root/.jenkins/) /root/.jenkins/plugins redémarrez Jenkins
Créer un processus de construction
Entrez le nom du projet - choisissez de créer un projet de logiciel de style libre
Configurer l'adresse de téléchargement de la source
Ajoutez la clé d'authentification de gitlab, configurez la clé privée de ssh ici
Ajouter la clé publique de ssh-key dans gitlab
Configurer le processus de construction
Il y a un point à noter ici: par exemple, que devons-nous faire si nous voulons exécuter des scripts associés sur une machine distante?
Un principe: pendant l'exécution de jenkins, l'utilisateur qui utilise jenkins s'exécute.
Deux méthodes:
- Tous les serveurs se connectent sans clé avec jenkins.
- La racine de tous les serveurs effectue une connexion sans clé.
Il est recommandé d'utiliser le second type, car le script publié peut impliquer des problèmes d'autorisation. Si vous utilisez jenkins, les autorisations sont peut-être insuffisantes.
la meilleure solution
sudo ssh -p 52113 [email protected] "/data/scripts/web-deploy.sh"
Effectuer la construction de la sortie de la console maintenant
Explique:
Jenkins clonera git dans / workspace de jenkins.
[root@linux-node1 web-build16:29:46]#pwd
/root/.jenkins/workspace/web-build
[root@linux-node1 web-build16:29:56]#ls -a
. .. .git index.html README.md
[root@linux-node1 web-build16:29:58]#
[root@linux-node1 web-build16:31:49]#cat /tmp/1.txt
2017-03-01
Veuillez attendre le prochain article: Gestion de la qualité du code Sonar