sql >> Databáze >  >> RDS >> Database

Použití Jenkinse s Kubernetes AWS, část 2

V prvním ze tří článků o automatizaci instalace Kubernetes pomocí Jenkins, „Používání Jenkins s Kubernetes AWS, část 1“, jsme vytvořili nezbytné artefakty a vytvořili uzel Jenkins. V tomto pokračování článku nakonfigurujeme Jenkinsfile pro Jenkinsovo potrubí a vytvoříme Jenkinsovo potrubí. Tento článek má následující sekce:

  • Konfigurace Jenkinsfile
  • Vytvoření Jenkinsova potrubí
  • Závěr

Vytvoření Jenkinsfile

Jenkins Pipeline je nakonfigurován v textovém souboru s názvem Jenkinsfile v syntaxi Groovy. Jenkinsfile sestává z kroků . „Krok“ je krok sestavení, instrukce, kterou má Jenkins implementovat. Jsou podporovány dva druhy kroků:uzel a fáze . „Uzel“ je krok nejvyšší úrovně, který vybírá spouštěče na agentech, na kterých se má spouštět kód. Uzel je stroj (master nebo agent ) a štítek v kroku uzlu by se měl shodovat se štítkem na počítači, aby uzel vybral stroj. Krok „uzel“ vytvoří pracovní prostor , což je souborový adresář, pro konkrétní Jenkinsovu úlohu pro zpracování náročné na zdroje. Krok „uzel“ také naplánuje kroky v něm definované na exekutorském slotu jejich přidáním do fronty sestavování Jenkins. Když exekutorský slot uvolní, spusťte naplánované kroky z fronty sestavení.

Vytvořte soubor s názvem Jenkinsfile (bez jakékoli přípony). Soubor bez přípony se v systému Windows vytvoří pomocí následujícího příkazu z příkazového řádku. Všimněte si „.“ Na konci příkazu, který má být zahrnut.

>notepad Jenkinsfile.

V dialogovém okně „Nelze najít soubor Jenkins. soubor. Chcete vytvořit nový soubor?" klikněte na Ano. Jenkinsfile soubor se vytvoří. V Jenkinsfile , vytvořte krok nejvyšší úrovně nazvaný „uzel“, ve kterém je štítek „jenkins“ stejný jako hodnota Labels nakonfigurovaná v agentovi Jenkins.

node('jenkins') {
}

V rámci kroku uzlu přidejte další kroky k instalaci clusteru Kubernetes. Přidejte kroky fáze pro instalaci Kubernetes. Postup instalace Kubernetes je dobře zdokumentován a nebude se o něm znovu diskutovat. Pro informaci „Začínáme s Kubernetes na Amazon Web Services (AWS)“ podrobně popisuje postup instalace. Příkazy shellu se spouštějí pomocí „sh“. Může být požadován uživatelský vstup pro proměnné, jako je počet pracovníků a typ instance.

kube-aws init příkaz k inicializaci zásobníku CloudFormation má název clusteru pevně zakódovaný jako „kubernetes-coreos-cluster“ (libovolný název). --external-dns-name je nastaven na název domény NOSQLSEARCH.COM , které by se pro různé uživatele lišily. Pár klíčů EC2 je nastaven pomocí --key-name na kubernetes-coreos , který byl vytvořen dříve. Klíč KMS je nastaven na KeyMetadata.Arn řetězec vygenerovaný dříve pomocí aws kms příkaz v --kms-key volba. Vygenerovaný Jenkinsfile je uveden níže:

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])
   }
}

Vytvoření Jenkinsova potrubí

Na panelu Jenkins Dashboard klikněte na vytvořit nové úlohy k vytvoření Jenkinsova potrubí, jak je znázorněno na obrázku 1.


Obrázek 1: Vyberte „vytvořit nové úlohy“ pro vytvoření Jenkinsovy úlohy

V uživatelském rozhraní zadejte název kanálu (install-kubernetes ), například a vyberte Potrubí , jak je znázorněno na obrázku 2. Klikněte na OK.


Obrázek 2: Výběr Pipeline

Spustí se průvodce konfigurací potrubí, jak je znázorněno na obrázku 3.


Obrázek 3: Průvodce konfigurací potrubí Jenkins

Vyberte Potrubí tab. V Definici vyberte Skript kanálu možnost, jak je znázorněno na obrázku 4.


Obrázek 4: Karta potrubí

Zkopírujte a vložte Jenkinsfile uvedený výše. Klikněte na Uložit , jak je znázorněno na obrázku 5.


Obrázek 5: Konfigurace Pipeline Script

Vytvoří se nový Jenkins Pipeline (viz obrázek 6).


Obrázek 6: Jenkins Pipeline vytvořen

Zpočátku kanál neběží a Stav by nemělo vypisovat žádné sestavení, které bylo spuštěno nebo spuštěno, jak je znázorněno na obrázku 7.


Obrázek 7: Stav Jenkinsova potrubí

Závěr

V tomto článku jsme nakonfigurovali Jenkinsfile a použili Jenkinsfile k vytvoření Jenkinsova potrubí. Ve třetím a závěrečném článku o automatizaci instalace Kubernetes pomocí Jenkins spustíme kanál Jenkins vytvořený v tomto článku pro instalaci Kubernetes. Následně otestujeme nainstalovaný cluster Kubernetes.


  1. Duplikujte, kopírujte nebo zálohujte tabulky v MySQL, MariaDB, Oracle, PostgreSQL, DB2 a SQLite pomocí Create Table As SQL

  2. nelze vytvořit autoinkrementační primární klíč pomocí flask-sqlalchemy

  3. Snižování parametru postgresql.conf, najednou

  4. Jak získat název měsíce z data v Oracle