Behin pentsatu nuen nire proiektuaren hedapena automatizatzea. gitlab.com-ek atsegin handiz eskaintzen ditu horretarako tresna guztiak, eta, jakina, erabiltzea erabaki nuen asmatuz eta inplementazio script txiki bat idatziz. Artikulu honetan, komunitatearekin nire esperientzia partekatzen dut.
Erregistratu gitlab aldagaietan CI / CD ezarpenetan ziurtagirien edukiekin. Idatzi .gitlab-ci.yml script bat hedatzeko.
Debian banaketari buruzko adibide guztiak erakutsiko ditut.
VPS hasierako konfigurazioa
Hemen, adibidez, instantzia bat erosi duzu DO, egin beharreko lehen gauza zure zerbitzaria kanpoko mundu erasokorretatik babestea da. Ez dut ezer frogatuko edo baieztatuko, nire zerbitzari birtualeko /var/log/messages erregistroa erakutsiko dut:
Zerbitzariaren ipak zurea izan behar du. Orain saiatu lehenago sortutako erabiltzailearekin saioa hasten, ez duzu pasahitzik sartu beharrik. Ondoren, konfigurazio-ezarpenetan, aldatu honako hau:
sudo nano /etc/ssh/sshd_config
desgaitu pasahitza saioa hasteko:
PasswordAuthentication no
Berrabiarazi sshd deabrua:
sudo systemctl reload sshd
Orain zu edo beste norbait root gisa saioa hasten saiatzen bazara, huts egingo du.
Ondoren, dockerd instalatzen dugu, ez dut hemen prozesua deskribatuko, dagoeneko dena alda daitekeenez, jarraitu webgune ofizialerako esteka eta jarraitu docker zure makina birtualean instalatzeko urratsak: https://docs.docker.com/install/linux/docker-ce/debian/
Ziurtagiria sortzea
Docker daemon urrunetik kontrolatzeko, enkriptatutako TLS konexioa behar da. Horretarako, zure urruneko makina sortzeko eta transferitzeko behar duzun ziurtagiria eta gako bat izan behar dituzu. Jarraitu docker webgune ofizialeko argibideetan emandako urratsak: https://docs.docker.com/engine/security/https/#create-a-ca-server-and-client-keys-with-openssl Zerbitzarirako sortutako *.pem fitxategi guztiak, hots, ca.pem, server.pem, key.pem, zerbitzariko /etc/docker direktorioan kokatu behar dira.
docker konfigurazioa
Docker daemon abiarazteko scriptean, kendu -H df:// aukera, aukera honek docker deabrua zein ostalaritan kontrolatu daitekeen esaten du.
# At /lib/systemd/system/docker.service
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
Ondoren, sortu ezarpen-fitxategi bat dagoeneko existitzen ez bada eta ezarri aukerak:
Dena berdea bada, zerbitzarian docker ondo konfiguratu dugula uste dugu.
Etengabeko entrega konfiguratzea gitlab-en
Gitalab-eko langileak urruneko docker ostalari batean komandoak exekutatu ahal izateko, dockerd-erako ziurtagiriak eta gako bat nola eta non gorde behar dituzun erabaki behar duzu. Arazo hau gitlbab ezarpenetan aldagaietan idatziz konpondu nuen:
spoiler izenburua
Idatzi ziurtagirien eta gakoen edukia katu bidez: cat ca.pem. Kopiatu eta itsatsi balio aldakorretan.
Idatzi dezagun gitlab bidez hedatzeko script bat. Docker-in-docker (dind) irudia erabiliko da.
Arazo nagusia gitlab CI / CD aldagaietatik ziurtagirien edukia modu normalean "atera" izan zen. Ezin izan nuen asmatu urruneko ostalariaren konexioak zergatik ez zuen funtzionatu. Ostalariaren sudo journalctl -u docker erregistroan begiratu dut, errore bat dago esku-ematearekin. Orokorrean aldagaietan gordetzen dena aztertzea erabaki nuen, horretarako cat -A $DOCKER_CERT_PATH/key.pem ikus dezakezu. Akatsa gainditu du tr -d 'r' karakterea kentzea gehituz.
Gainera, kaleratu osteko zereginak gehi ditzakezu gidoiari zure diskrezioan. Laneko bertsioa nire biltegian ikus dezakezu https://gitlab.com/isqad/gitlab-ci-cd