Git akpaaka nwere ike ịdọrọ n'ụyọkọ igwe mebere n'igwe ojii

Git akpaaka nwere ike ịdọrọ n'ụyọkọ igwe mebere n'igwe ojii

Ehihie ọma

Anyị nwere ọtụtụ ụyọkọ igwe ojii nwere nnukwu igwe mebere nke ọ bụla. Anyị na-akwado ihe a niile na Hetzner. N'ụyọkọ ọ bụla anyị nwere otu igwe igwe, a na-ewepụta foto site na ya wee kesaa ya ozugbo na igwe ọ bụla mebere n'ime ụyọkọ ahụ.

Atụmatụ a anaghị ekwe ka anyị jiri ndị na-agba ọsọ gitlab na-emekarị, ebe ọ bụ na ọtụtụ nsogbu na-ebilite mgbe ọtụtụ ndị na-agba ọsọ na-edebanye aha na-apụta, nke kpaliri anyị ịchọta ihe mgbagwoju anya ma dee akụkọ a / akwụkwọ ntuziaka.

Nke a nwere ike ọ bụghị omume kachasị mma, mana ngwọta a yiri ka ọ dị mfe ma dị mfe dịka o kwere mee.

Maka nkuzi, biko hụ pusi.

Ngwunye achọrọ na igwe igwe:

  • eke
  • gaa
  • faịlụ na igodo ssh

Ụkpụrụ izugbe nke imejuputa eriri afọ akpaka na igwe mebere ọ bụla bụ na ị chọrọ igwe nke a ga-etinye ike na ya. Site na igwe a, ike ga-eziga iwu git pull wee malitegharịa ọrụ emelitere. Maka ebumnuche ndị a, anyị mepụtara igwe mebere igwe dị iche na mpụga ụyọkọ wee tinye na ya:

  • eke
  • azịza
  • gitlab-ọsọ

Site na okwu nhazi - ịkwesịrị ịdebanye aha gitlab-ọsọ, mee ssh-keygen, bulite igodo ssh ọha nke igwe a .ssh/authorized_keys n'elu igwe igwe, oghe ọdụ ụgbọ mmiri 22 maka ike na igwe igwe.

Ugbu a, ka anyị hazie ike

Ebe ọ bụ na ebumnuche anyị bụ ịmegharị ihe niile nwere ike ime. Na faịlụ /etc/ansible/ansible.cfg anyị ga-ewepụ akara ahụ host_key_checking = Falsenke mere na onye nwere ike ghara ịrịọ maka nkwenye nke igwe ọhụrụ.

Na-esote, ịkwesịrị ịmepụta faịlụ ngwa ahịa na-akpaghị aka maka enwere ike, site na ebe ọ ga-ewere ip nke igwe nke ị ga-eme git pull.

Anyị na-emepụta faịlụ a site na iji Hetzner's API, ị nwere ike were ndepụta nke ndị ọbịa na AWS gị, Asure, nchekwa data (ị nwere API ebe iji gosipụta igwe na-agba ọsọ gị, nri?).

Nhazi nke faịlụ ngwa ahịa dị ezigbo mkpa maka ike ọ kwesịrị ịdị ka nke a:

[группа]
ip-адрес
ip-адрес

[группа2]
ip-адрес
ip-адрес

Iji mepụta faịlụ dị otú ahụ, anyị ga-eme edemede dị mfe (ka anyị kpọọ ya vm_list):

#!/bin/bash
echo [group] > /etc/ansible/cloud_ip &&
"ваш CLI запрос на получение IP запущенных машин в кластере"  >> /etc/ansible/cloud_ip
echo " " >> /etc/ansible/cloud_ip
echo [group2] > /etc/ansible/cloud_ip &&
"ваш CLI запрос на получение IP запущенных машин в другом кластере"  >> /etc/ansible/cloud_ip

Ọ bụ oge ịlele na ike na-arụ ọrụ ma nwee enyi na ịnweta adreesị IP:

/etc/ansible/./vm_list && ansible -i /etc/ansible/cloud_ip -m shell -a 'hostname' group

Ihe mmepụta kwesịrị ịnwe aha nnabata nke igwe ndị e ji gbuo iwu ahụ.
Okwu ole na ole gbasara syntax:

  • /etc/ansible/./vm_list - mepụta ndepụta igwe
  • -i - ụzọ zuru oke na faịlụ ngwa ahịa
  • -m - gwa onye nwere ike iji modul shei
  • -a bụ arụmụka. Enwere ike itinye iwu ọ bụla ebe a
  • otu - aha ụyọkọ gị. Ọ bụrụ na ịchọrọ ime nke a na ụyọkọ niile, gbanwee otu nye mmadụ niile

Ka anyị gaa n'ihu - ka anyị nwaa ime git pull na igwe mebere anyị:

/etc/ansible/./vm_list && ansible -i /etc/ansible/cloud_ip -m shell -a 'cd /path/to/project && git pull' group 

Ọ bụrụ na n'ime mmepụta anyị na-ahụ ugbua ma ọ bụ budata site na ebe nchekwa, mgbe ahụ ihe niile na-arụ ọrụ.

Ugbu a nke a bụ ihe e bu n'uche maka ya

Ka anyị kuziere edemede anyị ka ọ na-agba ọsọ ozugbo mgbe anyị na-etinye aka na ngalaba nna ukwu na gitlab

Mbụ, ka anyị mee ka edemede anyị mara mma ma tinye ya na faịlụ executable (ka anyị kpọọ ya exec_pull) -

#!/bin/bash

/etc/ansible/./get_vms && ansible -i /etc/ansible/cloud_ip -m shell -a "$@"

Ka anyị gaa na gitlab anyị wee mepụta faịlụ na ọrụ ahụ .gitlab-ci.yml
Anyị na-etinye ihe ndị a n'ime:

variables:
  GIT_STRATEGY: none
  VM_GROUP: group

stages:
  - pull
  - restart

run_exec_pull:
  stage: pull
  script:
  
   - /etc/ansible/exec_pull 'cd /path/to/project/'$CI_PROJECT_NAME' && git pull' $VM_GROUP
  
  only:
  - master

run_service_restart:
  stage: restart
  script:
 
   - /etc/ansible/exec_pull 'your_app_stop && your_app_start' $VM_GROUP
   
  only:
  - master 

Ihe niile dị njikere. Ugbu a -

  • mee nkwa
  • Obi dị m ụtọ na ihe niile na-arụ ọrụ

Mgbe ị na-ebufe .yml na ọrụ ndị ọzọ, naanị ịkwesịrị ịgbanwe aha ọrụ ahụ ka ịmalitegharịa yana aha ụyọkọ nke a ga-eme iwu ndị nwere ike ime.

isi: www.habr.com

Tinye a comment