Einführung von CircleCI in einer persönlichen App, Beim Versuch, auf EC2 bereitzustellen, sind einige Fehler aufgetreten, daher werde ich die Lösung beschreiben.
config.yml
version: 2
 
jobs:
    #Job bauen:Erstellen und testen Sie einen Docker-Container auf CircleCI
    build:
        docker:
            - image: alpine
        steps:
            - checkout
            - run:
                name: Echo Test
                command: echo "CircleCI Test"
    #Job bereitstellen:SSH in EC2 und führen Sie die Bereitstellung durch
    deploy:
        machine:
            image: circleci/classic:edge
        steps:
            - checkout
            #Rufen Sie den in CircleCI registrierten privaten Schlüssel auf
            - add_ssh_keys:
            #SSH unter Verwendung von in CircleCI registrierten Umgebungsvariablen
            - run: ssh ${USER_NAME}@${HOST_NAME} 'cd /var/www/myapp && git pull origin master'
 
workflows:
    version: 2
    # build_and_Job bereitstellen:Job rief zuerst an
    build_and_deploy:
        #Rufen Sie Build- und Deployment-Jobs auf
        jobs:
            - build
            - deploy:
                requires:
                    #Führen Sie den Build-Job vor dem Bereitstellungsjob aus!
                    - build
                #Führen Sie den Bereitstellungsjob nur aus, wenn er an den Hauptzweig gesendet wird
                filters:
                    branches:
                        only: master
ssh: connect to host ************* port 22: Connection timed out
【Lösung】 Bearbeiten Sie den Eingang der EC2-Sicherheitsgruppe wie folgt. Hinweis) Aus Sicherheitsgründen ist es vorzuziehen, einen Zwischenserver zu verwenden.
| Portbereich | Quelle | 
|---|---|
| 22 | Meine IP xxx.xxx〜 | 
↓
| Portbereich | Quelle | 
|---|---|
| 22 | Benutzerdefiniert 0.0.0.0/0 | 
(1) Führen Sie den folgenden Befehl auf EC2 aus, um einen PEM-Schlüssel zu erstellen (nennen Sie ihn z. B. circleci-key, da er möglicherweise mit anderen Schlüsseln in Konflikt steht).
ssh-keygen -m pem
(2) Führen Sie den folgenden Befehl auf EC2 aus und kopieren Sie den in (1) erstellten öffentlichen Schlüssel (key name.pub) in autorisierte_Tasten.
cat ~/.ssh/circleci-key.pub >> authorized_keys
③ Führen Sie den folgenden Befehl auf EC2 aus, um den in ① erstellten privaten Schlüssel anzuzeigen
cat ~/.ssh/circleci-key
④ Setzen Sie den angezeigten privaten Schlüssel auf den SSH-Schlüssel von CircleCI (Zu diesem Zeitpunkt enthalten Sie ----- BEGIN RSA PRIVATE KEY ----- und ----- END RSA PRIVATE KEY -----)
In meinem Fall wurde dadurch der Fehler behoben. Versuch es bitte.
[Verwendung von 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