Database
 sql >> Baza danych >  >> RDS >> Database

Używanie Jenkinsa z Kubernetes AWS, część 2

W pierwszym z trzech artykułów na temat automatyzacji instalacji Kubernetes za pomocą Jenkins, „Korzystanie z Jenkins z Kubernetes AWS, część 1”, stworzyliśmy wstępnie wymagane artefakty i utworzyliśmy węzeł Jenkins. W tym dalszym artykule skonfigurujemy plik Jenkins dla potoku Jenkins i utworzymy potok Jenkins. Ten artykuł ma następujące sekcje:

  • Konfigurowanie pliku Jenkins
  • Tworzenie potoku Jenkinsa
  • Wniosek

Tworzenie pliku Jenkins

Potok Jenkinsa jest skonfigurowany w pliku tekstowym o nazwie Jenkinsfile w składni Groovy. Plik Jenkinsa składa się z kroków . „Krok” to krok kompilacji, instrukcja dla Jenkinsa do wdrożenia. Obsługiwane są dwa rodzaje kroków:węzeł i scenę . „Węzeł” to krok najwyższego poziomu, który wybiera executor na agentach, na których uruchamiany jest kod. Węzeł to maszyna (master lub agent ), a etykieta w kroku węzła powinna odpowiadać etykiecie na komputerze, aby węzeł mógł wybrać komputer. Krok „węzeł” tworzy obszar roboczy , który jest katalogiem plików dla określonego zadania Jenkins do przetwarzania intensywnie korzystającego z zasobów. Krok „węzła” planuje również kroki zdefiniowane w nim w gnieździe executora, dodając je do kolejki kompilacji Jenkinsa. Gdy slot executora zwolni zaplanowane kroki z kolejki kompilacji.

Utwórz plik o nazwie Jenkinsfile (bez przyrostka). Plik bez przyrostka jest tworzony w systemie Windows za pomocą następującego polecenia z wiersza polecenia. Zanotuj "." Na końcu polecenia, które ma zostać dołączone.

>notepad Jenkinsfile.

W oknie dialogowym „Nie można znaleźć pliku Jenkins. plik. Czy chcesz utworzyć nowy plik?” kliknij Tak. Plik Jenkinsa plik zostanie utworzony. W pliku Jenkinsa , utwórz krok najwyższego poziomu o nazwie „węzeł”, w którym etykieta „jenkins” jest taka sama, jak wartość Labels skonfigurowana w agencie Jenkins.

node('jenkins') {
}

W kroku węzła dodaj inne kroki zainstalować klaster Kubernetes. Dodaj etapy etapowe za instalację Kubernetes. Procedura instalacji Kubernetes jest dobrze udokumentowana i nie będzie ponownie omawiana. Dla porównania, „Pierwsze kroki z Kubernetes w Amazon Web Services (AWS)” szczegółowo omawia procedurę instalacji. Polecenia powłoki są uruchamiane z „sh”. Może zostać wyświetlony monit o wprowadzenie przez użytkownika zmiennych, takich jak liczba pracowników i typ instancji.

Początek kube-aws polecenie do zainicjowania stosu CloudFormation ma nazwę klastra zakodowaną na stałe jako „kubernetes-coreos-cluster” (dowolna nazwa). --zewnętrzna-nazwa-dns jest ustawiona na nazwę domeny, NOSQLSEARCH.COM , które byłyby różne dla różnych użytkowników. Para kluczy EC2 jest ustawiona za pomocą --key-name do kubernetes-coreos , który powstał wcześniej. Klucz KMS jest ustawiony na KeyMetadata.Arn ciąg wygenerowany wcześniej za pomocą aws kms polecenie w --kms-key opcja. Wygenerowany plik Jenkins jest wymieniony poniżej:

node('jenkins') {

stage 'set env'

sh "sudo yum install gnupg2"
sh "gpg2 --keyserver pgp.mit.edu --recv-key FC8A365E"

sh "gpg2 --fingerprint FC8A365E"

sh "wget https://github.com/coreos/coreos-kubernetes/releases/
   download/v0.7.1/kube-aws-linux-amd64.tar.gz"
sh "wget https://github.com/coreos/coreos-kubernetes/releases/
   download/v0.7.1/kube-aws-linux-amd64.tar.gz.sig"

sh "gpg2 --verify kube-aws-linux-amd64.tar.gz.sig kube-aws-linux-
   amd64.tar.gz"

sh "tar zxvf kube-aws-linux-amd64.tar.gz"

sh "sudo mv linux-amd64/kube-aws /usr/local/bin"

sh "export AWS_ACCESS_KEY_ID=AKIAJGFCP4HUFH4453FA"
sh "export AWS_SECRET_ACCESS_KEY=7BaiUETep3zPYrhrzKYpBdwkwVV16
   BTT+pt2/EXF"

sh "aws ec2 create-volume --availability-zone us-east-1c --size 10
   --volume-type gp2"


stage 'kube-aws init'
deleteDir()

sh "mkdir coreos-cluster"
sh "cd coreos-cluster"

sh "kube-aws init
   --cluster-name=kubernetes-coreos-cluster
   --external-dns-name=NOSQLSEARCH.COM
   --region=us-east-1
   --availability-zone=us-east-1c
   --key-name=kubernetes-coreos
   --kms-key-arn='arn:aws:kms:us-east-1:672593526685:key/
     f380f8b3-e93d-4a37-b87f-9ad1dbe909be

'"
stage "kube-aws render"
WORKER_COUNT = input message: 'Number of Nodes',
   parameters: [[$class: 'StringParameterDefinition',
   defaultValue: '3', description: '', name: 'WORKER_COUNT']]
INSTANCE_TYPE = input message: 'Instance Type',
   parameters: [[$class: 'StringParameterDefinition',
   defaultValue: 't2.micro', description: '',
   name: 'INSTANCE_TYPE']]

sh "kube-aws render"
sh "sed -i '''s/#workerCount: 1/workerCount:
   '''$WORKER_COUNT'''/''' cluster.yaml"
sh "sed -i '''s/#workerInstanceType: m3.medium/workerInstanceType:
   '''$INSTANCE_TYPE'''/''' cluster.yaml"
sh "kube-aws validate"

stage "Archive CFN"
step([$class: 'ArtifactArchiver', artifacts: 'cluster.yaml,
   stack-template.json,credentials/*,userdata/*',
   fingerprint: true])

   stage "Deploy Cluster"
   shouldDeploy = input message: 'Should Deploy Cluster?',
      parameters: [[$class: 'ChoiceParameterDefinition',
      choices: 'yesno', description: '', name: 'Deploy']]
   if(shouldDeploy == "yes") {
      echo "Deploying Kubernetes cluster"
      sh "kube-aws up"
      sh "kube-aws status"
      step([$class: 'ArtifactArchiver', artifacts: 'kubeconfig',
         fingerprint: true])
   }
}

Tworzenie potoku Jenkins

W panelu Jenkins kliknij utwórz nowe oferty pracy aby utworzyć potok Jenkinsa, jak pokazano na rysunku 1.


Rysunek 1: Wybierz „utwórz nowe miejsca pracy”, aby utworzyć zadanie Jenkins

W interfejsie użytkownika określ nazwę potoku (install-kubernetes ) na przykład i wybierz Potok , jak pokazano na rysunku 2. Kliknij OK.


Rysunek 2: Wybór potoku

Uruchomi się kreator konfiguracji potoku, jak pokazano na rysunku 3.


Rysunek 3: Kreator konfiguracji potoku Jenkins

Wybierz Potok patka. W Definicji wybierz Skrypt potoku jak pokazano na rysunku 4.


Rysunek 4: Zakładka Rurociąg

Skopiuj i wklej wymieniony wcześniej plik Jenkins. Kliknij Zapisz , jak pokazano na rysunku 5.


Rysunek 5: Konfiguracja skryptu potoku

Zostanie utworzony nowy potok Jenkins (patrz Rysunek 6).


Rysunek 6: Utworzono potok Jenkinsa

Początkowo potok nie działa, a Stan nie powinien wymieniać żadnej uruchomionej lub uruchomionej kompilacji, jak pokazano na rysunku 7.


Rysunek 7: Stan potoku Jenkinsa

Wniosek

W tym artykule skonfigurowaliśmy plik Jenkinsfile i użyliśmy pliku Jenkinsfile do utworzenia potoku Jenkins. W 3 i końcowym artykule na temat automatyzacji instalacji Kubernetes za pomocą Jenkins, uruchomimy potok Jenkins utworzony w tym artykule, aby zainstalować Kubernetes. Następnie przetestujemy zainstalowany klaster Kubernetes.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest operator porównania?

  2. Jak uruchamiają się plany równoległe – część 4

  3. Jak maskować tabele i zachować integralność referencyjną?

  4. Uruchomienie bazy danych RAC kończy się niepowodzeniem z błędem ORA-12547

  5. Przywracanie kopii zapasowej bazy danych w OpenCart 1.5