Un ensemble de processus de déploiement automatisé de base

Contexte du problème

L'équipe technique de démarrage de l'entreprise, sans aucune infrastructure, a besoin de construire une série d'outils de gestion de code et de déploiement automatisé. Tous les outils de base sont construits avec succès, ouais ~, jetons un coup d'il au processus de construction.

Ressources

Un serveur, CentOS, la société a donné un serveur avec une configuration inférieure en tant que serveur temporaire, pas du tout, faites-le.

Réflexion: si j'utilise du yum traditionnel pour l'installation, il sera certainement gâché par moi, et il ne me sera pas pratique de le gérer et de le maintenir. Dans des circonstances difficiles, je choisis Dokcer. Certains amis peuvent demander comment Docker est utilisé. Ne paniquez pas. Portail:

https://segmentfault.com/a/1190000016254236#articleHeader0

Configuration de l'environnement de test

Afin de mettre en place rapidement un environnement de test PHP, j'ai décidé d'utiliser laradock. Bien qu'il y ait beaucoup de fichiers, les choses encapsulées sont relativement complètes. Je ne sais pas quelle technologie sera utilisée dans le développement ultérieur. un service.

L'introduction donnée par la documentation officielle de laradock est également très complète. La façon dont j'adopte ici est de déployer plusieurs ensembles de projets. La structure du répertoire est la suivante:

+ laradock + projet-1 + projet-2

commencer à utiliser:

1. clone git https://github.com/laradock/laradock

2.cp env-example .env

La configuration dans env peut être modifiée et peut être ajustée selon votre propre situation

3.docker-compose up -d nginx php-fpm mysql redis

Vous pouvez ajouter le programme que vous souhaitez démarrer plus tard, comme rabbitmq, mongo, etc., l'ajouter à la queue lorsque vous en avez besoin pour démarrer, la première heure de démarrage est un peu longue

4.docker-compose exec --user = laradock workspace bash

Des projets comme laravel auront certainement compositeur, exécutez cette commande pour entrer dans l'espace de travail, vous pouvez exécuter compositeur

5.docker-compose exec nginx nginx -s recharger

Quelqu'un va certainement me demander si je change la configuration de nginx pour redémarrer le conteneur nginx à chaque fois, ou redémarrer le conteneur entier. Sinon, exécutez cette commande pour redémarrer nginx. Où se trouve le fichier de configuration du site nginx: ./laradock/nginx/sites/

Essayons d'abord.

GitLab

Maintenant que l'environnement d'exploitation est configuré, comment dois-je stocker mon code? En fait, il existe de nombreuses options, en fonction de votre situation actuelle, telles que: GitHub, nuage de code, GitLab, etc., j'ai choisi GitLab, je ne l'ai pas trouvé au début Laradock fournit en fait des services GitLab. . Je ne peux que me lancer, c'est en fait très simple.

docker \ run-d \ -p443: 443 \ -p8080: 80 \ -p222: 22 \ -namegitlab \ -restartalways \ -v / home / gitlab / config: / etc / gitlab \ -v / home / gitlab / logs: / var / log / gitlab \ -v / home / gitlab / data: / var / opt / gitlab \ gitlab / gitlab-ce # Explication du paramètre: # -d: laissez le conteneur s'exécuter en arrière-plan # -p: exposez le port, mettez Le port 443 du conteneur pointe vers le port 443 de la machine hôte, la machine hôte 8080- > Conteneur 80, hôte 222- > Conteneur 22 # Le port hôte peut être personnalisé en fonction de votre propre situation. # -Name Donnez un nom à votre conteneur, tant qu'il ne chevauche pas celui existant. # -Restart Lorsque le conteneur se ferme, le docker redémarre # -v Une fois le disque chargé, montez le répertoire de l'hôte dans le conteneur. Même si le conteneur est cassé, mon contenu ne sera pas perdu. # Le répertoire machine / home / gitlab / config est monté dans le répertoire container / etc / gitlab, le répertoire hôte est déterminé en fonction de votre propre situation # gitlab / gitlab-ce Ceci est le miroir à démarrer, si le miroir n'existe pas, le docker téléchargera automatiquement Nouveau

Une fois le conteneur démarré avec succès, il y aura une période de temps pour démarrer GitLab. Lorsque vous démarrez le conteneur, vous ne pourrez pas y accéder immédiatement. Attendez un instant. Les fichiers de configuration peuvent être modifiés dans le répertoire hôte que vous spécifiez. Le contenu à modifier est le suivant :

gitlab_rails = 'IP de la machine hôte' # Adresse IP de la machine hôte gitlab_rails = 222 # Exposé au port ssh de la machine hôte external_url'Nom de domaine '# Nom de domaine attribué à gitlab, vous pouvez utiliser nginx comme proxy inverse pour le port 8080

Jenkins

Il existe de nombreuses façons de réaliser un déploiement automatisé tels que: webhook, Jenkins, Travis CI, etc., mon choix est Jenkins, car il a été utilisé avant le déploiement, donc je l'utilise toujours ici, laradock fournit toujours le service Jenkins, mais parce que je ne me suis pas trouvé à construire Une. . . Il semble que je verrai plus de pratique la prochaine fois.

dockerrun-d \ -namemyjenkins \ -p8181: 8080 \ -p50000: 50000 \ -v / home / jenkins /: / var / jenkins_home \ jenkins / jenkins # explication du paramètre # -d: laisser le conteneur s'exécuter en arrière-plan # -p: exposé Port, hôte 8181 > Conteneur 8080, hôte 50000- > Container 50000 # -v Ceci est le disque de montage, montez le répertoire hôte sur le conteneur, même si le conteneur est cassé, mon contenu ne sera pas perdu. # Le répertoire host / home / jenkins / est monté dans le répertoire container / var / jenkins_home, le répertoire host est déterminé en fonction de votre propre situation

Est-ce aussi très simple ~. ~, Mais il y aura un mot de passe d'initialisation après l'installation réussie de Jenkins, comment vérifier le mot de passe d'initialisation, il y a deux façons:

Dockerlogs # First way < Le nom de votre conteneur > # Cela vous permettra de voir le contenu de la sortie du conteneur # La deuxième façon cat / home / jenkins / secrets / initialAdminPassword # Voici bon / home / jenkins doit être remplacé par le répertoire que vous montez

configuration de jenkins

initialisation

Entrez le mot de passe d'initialisation que vous avez obtenu ci-dessus. L'étape suivante que j'ai choisie est l'installation recommandée. Si vous en avez besoin plus tard, vous pouvez vous rendre dans la bibliothèque de plug-ins pour l'installer.

Installation de plug-in

Après une initialisation réussie, accédez aux paramètres système - > La gestion des plug-ins installe plusieurs plug-ins nécessaires:

PublishOverSSHGitLabPlugin # Parce qu'il s'agit de Gitlab, nous devons installer ce NodeJSPlugin # Vue utilisé par notre frontal, nous devons donc utiliser le nud

Commencez le voyage

1. Configuration de base

Après avoir installé le plugin, vous devez configurer certains contenus de base tels que jdk, node, ssh, etc.

Installation 1.ssh

Entrez: Gérer Jenkins- >  Configurer le système

Cliquez sur Avancé:

Cliquez sur Tester la configuration pour tester si la connexion est réussie

2.jdk, git

Entrez: Gérer Jenkins- >  Configuration globale de l'outil

J'utilise l'installation automatique de jdk et git ici. Vous avez besoin d'un compte lorsque jdk est installé, il vous suffit de vous inscrire

3. installation de noeudjs

Deuxièmement, créez un projet

  • Créer un nouveau projet
  • Choisissez un style libre

3. Ingénierie de configuration

Configurer pour conserver quelques versions à construire

Utilisez l'outil de code source git, entrez l'adresse git, ajoutez l'utilisateur git

if; thenrmtestv.tar.gzfitar-zcvftest.tar.gz ./*

Pourquoi emballer le projet ici, car le ssh à configurer ci-dessous ne prend pas en charge le transfert de dossier, vous devez donc d'abord empaqueter le contenu, puis aller sur le serveur pour décompresser

Une fois que tous sont enregistrés, vous pouvez construire. Ouais ~

Programmation asynchrone Java simultanée, le travail des dix interfaces d'origine ne nécessite désormais qu'une seule interface
Précédent
SpringBoot implémente des filtres, des intercepteurs et des tranches
Prochain
Zhou Yutong articles vestimentaires souvent sans visage monter en flèche! Trop petit pour porter un costume vert et de beaux garçons, il est vraiment pas recueillir plus de
Chanson étude Fei de tenue de style complexe truc ah la haine! Dans cette vaillante usure tropicale encore, nous avons froid
Shinsei nouvel artiste Yuko dernier PW du Japon, des vêtements doux Meng Département très aimable, l'identité du modèle populaire
Et pile Sa et chaleureuse promenade Chuan Chuan, avec un printemps 2020 a été prêt, en attendant une journée ensoleillée
La version coréenne de Kim Ji Ni de la couverture du magazine Way, mais je ne m'attendais pas au visage charnu, et elle pouvait se sentir si girly.
Pu Caiying un cheveu jaune non-traditionnels? Si pur artiste féminine coréenne, c'est le courant dominant avec
ZhouDongYu enveloppé articles de « tissu rouge » sur le spectacle, vilain petit canard rouge bénédiction rouge, vraiment heureux
Shuang Cheng Meng vendre avec les parents sur la même scène en chantant, ce beau père ne pouvait suivre malheureusement, ma mère est très belle
Angelababy est apparu à Pékin Fête du Printemps, le sentiment T-shirt robe à tomber, vaillant vêtements occidentaux
Tong Liya est en effet le charme des représentants d'une femme, trois séries de CCTV Festival de Printemps de style du soir, la pression Yan le public, mais les points
TAO 48 ans osent sexy jouer! Petit Lu Xiangjian moitié Les jambes montrent, ce féminin Effet de levier
Nouvelles règles Sui Il superposant brillamment, puis définir un grand champ de gaz sec pour recouvrir, en effet Supermode