Nieritreritra ny hanao automatique ny fametrahana ny tetikasako aho indray mandeha. Ny gitlab.com dia manome tsara ny fitaovana rehetra ho an'izany, ary mazava ho azy fa nanapa-kevitra ny hanararaotra izany aho, hamantatra izany ary hanoratra script fandefasana kely. Amin'ity lahatsoratra ity dia mizara ny traikefako amin'ny fiarahamonina aho.
Hasehoko ny ohatra rehetra momba ny fizarana Debian.
Fametrahana VPS voalohany
Ka nividy ohatra ianao ohatra tamin'ny DO, ny zavatra voalohany tokony hataonao dia ny miaro ny mpizaranao amin'ny tontolo ivelany mahery setra. Tsy hanaporofo na hanamafy na inona na inona aho, hasehoko fotsiny ny log /var/log/messages of my virtual server:
ΓΒ‘ΓΒΊΓ β¬ ΓΒΈΓΒ½ΓΓΒΎΓ,
Voalohany, apetraho ny firewall ufw:
apt-get update && apt-get install ufw
Alefaso ny politikan'ny default: sakanana ny fifandraisana miditra rehetra, avelao ny fifandraisana mivoaka rehetra:
Zava-dehibe: aza adino ny mamela ny fifandraisana amin'ny ssh:
ufw allow OpenSSH
Ny fehezanteny ankapobeny dia toy izao: Avelao hifandray amin'ny seranan-tsambo: ufw mamela 12345, izay 12345 no laharana seranan-tsambo na anaran'ny serivisy. Deny: ufw deny 12345
Alefaso ny firewall:
ufw enable
Mivoaka ny session izahay ary miditra indray amin'ny ssh.
Ny ip mpizara dia tsy maintsy anao. Andramo izao ny miditra amin'ny alΓ lan'ny mpampiasa noforoninao teo aloha; tsy mila mampiditra tenimiafina intsony ianao. Manaraka, ao amin'ny firafitry ny configuration, hanova izao manaraka izao:
sudo nano /etc/ssh/sshd_config
esory ny tenimiafina fidirana:
PasswordAuthentication no
Avereno indray ny daemon sshd:
sudo systemctl reload sshd
Amin'izao fotoana izao raha toa ianao na olon-kafa manandrana miditra amin'ny maha-mpampiasa faka azy dia tsy mandeha izany.
Manaraka, apetraho ny dockerd, tsy hamariparitra ny dingana eto aho, satria efa azo ovaina ny zava-drehetra, araho ny rohy mankany amin'ny tranokala ofisialy ary mandehana amin'ny dingana fametrahana docker amin'ny milina virtoaly anao: https://docs.docker.com/install/linux/docker-ce/debian/
Mamorona taratasy fanamarinana
Mba hifehezana ny daemon docker avy lavitra dia ilaina ny fifandraisana TLS misy encryption. Mba hanaovana izany dia mila manana taratasy fanamarinana sy lakile ianao, izay tsy maintsy amboarina sy afindra any amin'ny milina lavitra anao. Araho ny dingana omena ao amin'ny torolΓ lana ao amin'ny tranokalan'ny docker ofisialy: https://docs.docker.com/engine/security/https/#create-a-ca-server-and-client-keys-with-openssl Ny rakitra *.pem rehetra noforonina ho an'ny mpizara, izany hoe ca.pem, server.pem, key.pem, dia tsy maintsy apetraka ao amin'ny lahatahiry /etc/docker amin'ny mpizara.
Fametrahana dockerd
Ao amin'ny script fanombohana daemon docker dia esorinay ny safidy -H df://, ity safidy ity dia mamaritra hoe iza no mpampiantrano ny daemon docker azo fehezina.
# At /lib/systemd/system/docker.service
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
Manaraka, tokony hamorona fisie fikandrana ianao, raha tsy mbola misy izany, ary mamaritra ny safidy:
Raha "maitso" ny zava-drehetra, dia heverintsika fa nahavita nanamboatra docker tamin'ny mpizara.
Mametraka fandefasana tsy tapaka amin'ny gitlab
Mba hahafahan'ny mpiasa Gitalaba afaka manatanteraka baiko amin'ny mpampiantrano Docker lavitra, dia ilaina ny manapa-kevitra ny fomba sy ny toerana hitahirizana ny mari-pankasitrahana sy ny lakile ho an'ny fifandraisana misy miafina miaraka amin'i Dockerd. Namaha ity olana ity aho tamin'ny fampidirana fotsiny ireto manaraka ireto amin'ny variables ao amin'ny fikandrana gitlbab:
Lohateny spoiler
Alefaso fotsiny amin'ny alΓ lan'ny cat ny votoatin'ny mari-pankasitrahana sy fanalahidy: cat ca.pem. Adikao sy apetaho amin'ny sanda miovaova.
Andao hanoratra script ho an'ny fametrahana amin'ny alΓ lan'ny GitLab. Ny sary docker-in-docker (dind) no hampiasaina.
Ny olana lehibe dia ny "misintona" ny votoatin'ny mari-pankasitrahana amin'ny endrika mahazatra avy amin'ny gitlab CI / CD variables. Tsy azoko hoe nahoana no tsy mandeha ny fifandraisana amin'ny mpampiantrano lavitra. Tao amin'ny mpampiantrano aho dia nijery ny log sudo journalctl -u docker, nisy hadisoana nandritra ny fifampikasohana. Nanapa-kevitra ny hijery izay voatahiry amin'ny ankapobeny amin'ny variables aho, mba hanaovana izany dia azonao atao ny mijery toy izao: cat -A $DOCKER_CERT_PATH/key.pem. Nandresy ny hadisoana aho tamin'ny fampidirana ny fanesorana ny toetran'ny fiara tr -d 'r'.
Manaraka izany dia azonao atao ny manampy asa aorian'ny famoahana ny script araka ny fanapahan-kevitrao. Azonao atao ny mijery ny dikan-teny miasa ao amin'ny fitahirizanao https://gitlab.com/isqad/gitlab-ci-cd