[RAILS] Erreur lors du déploiement d'EC2 avec CircleCI

introduction

Introduction de CircleCI dans une application personnelle, Lorsque j'ai essayé de déployer sur EC2, j'ai eu des erreurs, je vais donc décrire la solution.

environnement

config.yml

version: 2
 
jobs:
    #construire un emploi:Créer et tester un conteneur Docker sur CircleCI
    build:
        docker:
            - image: alpine
        steps:
            - checkout
            - run:
                name: Echo Test
                command: echo "CircleCI Test"
    #déployer le travail:SSH dans EC2 et effectuer le déploiement
    deploy:
        machine:
            image: circleci/classic:edge
        steps:
            - checkout
            #Appeler la clé privée enregistrée dans CircleCI
            - add_ssh_keys:
            #SSH utilisant des variables d'environnement enregistrées dans CircleCI
            - run: ssh ${USER_NAME}@${HOST_NAME} 'cd /var/www/myapp && git pull origin master'
 
workflows:
    version: 2
    # build_and_déployer le travail:Job appelé en premier
    build_and_deploy:
        #Appeler les tâches de création et de déploiement
        jobs:
            - build
            - deploy:
                requires:
                    #Exécutez le travail de génération avant le travail de déploiement!
                    - build
                #Exécuter le travail de déploiement uniquement lorsqu'il est transmis à la branche principale
                filters:
                    branches:
                        only: master

Problèmes et solutions survenus

① Erreur due au port non ouvert

ssh: connect to host ************* port 22: Connection timed out

【Solution】 Modifiez le flux entrant du groupe de sécurité EC2 comme suit. Note) Il est préférable d'utiliser un serveur intermédiaire pour des raisons de sécurité.

Gamme de ports La source
22 Mon IP xxx.xxx〜

Gamme de ports La source
22 Personnalisé 0.0.0.0/0

② Erreur due à une incompatibilité de clé privée

(1) Exécutez la commande suivante sur EC2 pour créer une clé pem (nommez-la comme circleci-key car elle peut entrer en conflit avec d'autres clés)

ssh-keygen -m pem

(2) Exécutez la commande suivante sur EC2 et copiez la clé publique (key name.pub) créée dans (1) dans allowed_keys.

cat ~/.ssh/circleci-key.pub >> authorized_keys

③ Exécutez la commande suivante sur EC2 pour afficher la clé privée créée dans ①

cat ~/.ssh/circleci-key

④ Définissez la clé privée affichée sur la clé SSH de CircleCI (À ce stade, incluez ----- BEGIN RSA PRIVATE KEY ----- et ----- END RSA PRIVATE KEY -----)

finalement

Dans mon cas, cela a effacé l'erreur, Essayez-le.

référence

[Comment utiliser CircleCI](https://suwaru.tokyo/%E3%80%90%E4%BD%BF%E3%81%84%E6%96%B9%E3%80%91circleci%E3%81%A8 % E3% 81% AF% EF% BC% 9Fec2% E3% 81% ABssh% E3% 81% 97% E3% 81% A6% E3% 83% 87% E3% 83% 97% E3% 83% AD% E3 % 82% A4% E8% 87% AA% E5% 8B% 95% E5% 8C% 96 /)

Recommended Posts

Erreur lors du déploiement d'EC2 avec CircleCI
Erreur lors du déploiement d'EC2
Erreur rencontrée avec les notes lors du déploiement de docker sur des rails
Erreur de base de données concernant le déploiement à l'aide d'Heroku
EC2 sur Docker-compose
Erreur lors de l'installation de l'environnement d'exécution de ruby sur l'instance EC2
Libération: effectuer le déploiement donne le code d'erreur 400
Recette pour déployer des applications Rails sur AWS EC2
Possibilité lors du déploiement sur EC2 mais rien n'est affiché dans le journal des erreurs
Extension de disque lors du démarrage de CentOS 8.2 de aarch64 avec EC2
Lancez EC2 Rails
Déployer RAILS sur EC2
Erreur lors de l'installation du bundle
Erreur 1002 sur Tomcat + WebSocket
Résolution d'erreur sur Heroku
Afficher une erreur détaillée dans Logger lors de l'exécution de Java sur le serveur
Mettez Oracle Java 8 dans CircleCI 2
Erreur lors de la lecture avec java
Installer docker sur AWS EC2
Erreur lors de l'utilisation des rails capybara
Erreur SpringBoot + Mybatis lors du démarrage
Erreur lors de l'introduction de l'authentification SNS