Рубрики
Uncategorized

[0] ~ QUALCOSA DI DEVOPS: Vagrange Multi Machine Setup

[En_version_tbd] Д.А. ООН ООН Anno Questa Parte Ricopro Il Ruolo Di Devops. O Приходите ироникаменте CI … Теги с DevOps, Vagrant, YAML.

[En_version_tbd]

Д.А. ООН ООН Anno Questa Parte Ricopro Il Ruolo Di Devops. O Приходите ироникаменте CI Piace Soprannominarci Nel Value, yaml инженер.

CHE POI è UNA DISAIZIONE CHE MI STA STRETTA: è Solo quando la mia giornata lavorativa va мужчина, ch passo 8 ore al giorno ad arrovellarmi. Tra Una Ventina di Docker-Compose (.yml) E, DA POCO, развертывание Di Kubernetes. MA, Dirla Tutta, Puredisco I Toml. Че Соно Утилиццаты Поко, Мольто Поко. Квази Niente.

Se Qualcuno Ancora Si Stesse Chiedendo Quali Thani Thansici Può Portare La Figura Del DevOps Ad Una Ipotetica Azienda Conduzione Familire, Risponderei: Automatizzza Tutt’cos Действительно

O, Pensandoci SU:

La Persona O IL Team Che Traghetta Quell’incubo di Phardazione, Uscita Da Un Film Dell’orraore, Nel Mondo Delle лучшие практики Отказ ООН Мондо FATTO DI: Ti Automatizzo La Build, Ti Segnalo Eventuali Bug Di Sicurezza O Cantomeno Ti Faccio RILASCIA RECICE манутохранник … каприз. Ti Standardizzo я проверяю программное обеспечение E Ti Faccio RILASCIARE IL в Produzione Conful.

В Poche Carole: Il Massimo Risultato Con Il Minimo Sforzo. Il Sogno Bagnato di Ogoni Sfaticato. Включить меня.

La Giornata Tipo di un devops non è fatta solo di yaml e di kubernetes, però. MA Anche di Purse, Emozioni (негативные) E Automatismi. Приходите ogri Professionista del Sitelore It, Anche Noi Abbiamo ООН Coltellino цинты Svizzero Con 40 Funzionalità.

Molti di Noi, в Ufficio, Vengono Assegnati Dei Portatili Su Cui Gira Windows. Nel Nostro Lavro, Però, Automatizzare E RILASCIARE è UNA COSA CHEASE CHEASIAMO DELEGARE AL BUON VECCHIO LINUX CON LE SUE PROMITION POSIX E Bash, CH TRA UNA Найти , ООН awk ООН zcat Macina Anche I Sassi.

Microsoft HA Bewaymente Capito Quale Sia Il Lato Corretto Della Correte Da Segureire, E FINGEMENEE CI HA DELIZIATO CON COMODI E PRATICI: VSCODE, WSL2, Терминал Windows, на Citarne Alcuni.

Я дежопт, приходите Si è Capito, Sono Svogliati, не Si Fiadano dei Dev e Quindi Gli Piace Piace Automatizzate. MA Sopratutto, Gli Piace Che Una Cosa Assa Essere Configurata, установка E Riutilizzata. Spesso Gli Ambienti di dev (e nonolo quelli) diventano così confusi e pieni di monnezza, ch l’unica soluzione sensata sembra easkere ill dombara reparatore.

4-5 Anni Fa, Uno Sviluppatore Smart Alm Prime Armi Nell’industria DEL Software Avrebbe PoTuto Pensare: OK, Installow Vox, Scarico Una Immagine Da Osboxes, Chatche Chatche Giornata Учебник Vedere Su Configurare Il Maleletetto Bridge Tra VBox E Windows, E РАЗДАЛЕНИЕ РАЗДЕЛЕНИЯ ДОПО AVER RIPETUTOEE LE CONFIGNURAZIONI 15 VOLTE SONO PRONTO на LARORARARARE.

IL TEMPO PASSA E Microsoft GLI VA icontro: ORA PUò Semplymente Installare Una Ricca Ubuntu Dallo Store Di Windows. Questa Gira SU WSL, HA LE LE CORTELLE CDOVISE CHE PUò USARE DA Windows, STA Sullo STESSO Network Di Windows E Actanto Non Devazzire A Configurallo, Installa NPM/Maven/Go/Sarcazzo E Inizia a Lavorare. C’è Solo La Shell. Pazienza, Deve Fare Solo MV, CP E Lancire La Build E L’Esecuzione, Se Gli Va Proprio Male.

6 Mesi DOPO, Scopre CHA HA Instalato Tanta di Quella Roba Su WSL, CHE GLI PESA 45GB E HA BISOGNO DI ООН ESORCIMSO PER CompiLare Un Pacchetto Senza Fallire. La VM? Reinstallata ALTRE 15 VOLTE, CON I Soliti Procementi di Rete E La Pesantezza Che Tutto un de de de linux può portare sul network di un casentare messo в croce.

Storia Già Vista.

М.А. ООН Георно, Иль Туо Нуово Старший Ti Chiama E Ti Dice «Installa Vagrant E Lancialo Con Questo File Di Configureazione. Così Puoi Avere Una Macchina Virtuale Protta за L’Uso. La Lanci E La Fermi Da Riga Di Comando E Uando Non Ti Suff On Funziona o Devi Farci Altro, La Cancelli E Ne Cree Una Nuova. «

В УМЭЛКом Паписци-ди Aver Compleco Il Senso Dell’universo, E Pensi Che Vorresti Ringrazire Quei Santi Di Hashicorp Uno Ad Uno, Perché Fingleme Puoi Fare Уна Configureazione, Уна Sola Volta e rusarla all’infinito se qualcosa non va. E Fai Tutto Dalla Riga Di Comando. Animale Strano Che inizi ad remesare semper di più. La Cosa Figa è Che Con Uno Schiocco di Ditita è Сообщение (RAM Permettendo) Tirare SU OU CLUSTER DI MACCHINE Virtuali. Джой.

Vagrant è Uno degli Attrezzi Nel Vostro Nuovo Coltellino SVI мультиаттрецко. Vagrant è La Risposta ad una domaanda ch nessuno forse si era posto: faccio ad avere unme ambiente linux, pronto con quello che dico io, senza perderci tempo?

В Informatica, в Matematica, e в подробности в алгебре, L’idempotenza è Una proprietà delle funzioni per la quale chickando molteplato ona quale elando il risultato untruto è Угуал quello derivante dall’appladazione della funzione un’unica volta.

Non Importa Quante Volte Voi Esegiate Il Provisioning Di Una VM Con Vagrance. SE SCRIVETETE BENE IL FILE DI CONFIGURAZIONE, OTETRETE SEMPER LO STESSO RISULTATO. L’IDEMPOTENZA è UNO DEI CARDIA CARDINE DEVOPS.

  • Vbox.
  • Вагон
  • редактор Scelta (VSCode)
  • Terminale Scelta (терминал Windows)
  • ООН SSD (LOMATE PURE SU DISCO DISCO MECCANICO, SE AVETE VOGLIA DI SoffRire)

Visto Che sono despotalarmente sfataticato, vi dico cha a me piace usare choco per gestire i miei Robi di lavoro:

Choco Установить Virtualbox Varge Editor-A-Scelta

А.Л. ЛОГАЕТОР СИ РИМАНДА ЛА ДИМОСТРАЗОНИОНЕ ДЕЛЬ ТЕОРЕМА, L’Installazione di ChocolaDy, L’Installazione dei Pacchetti, La Creazione di un Nuovo Reppo Git Chiamato «Ubuntu-Cluster» Ed un Paio di Riavvii del PC.

Гость è Ла Маккина виртуала че создать. хозяин è la macchina fisica , че OSPiterà le vm.

Репозиторий Бенто

Qui Trovate Le Immagini «Bento» на Le Vostre VM. Le Bento Sono Создать DA шеф-повар (ALTRA Grossa Corp Che Lama в Ambito Devops/операции), Соновый оттимизат I Nostri Scopi de dev e sono Opensource

DIGREVESSIONE: Приходите VENGONO Создать LE VM Di Vagrant? Усандо ООН ALTRO Programma Di Hashicorp, Packer.

Я Comddi Fondamentali:

Vagrant init ubuntu/focal64 inizializza un progetto per una vm ubuntu 20. CREA ON Vagrantfile Con Le Dire Tire Base.

Я бронтифицировал Sono Scritti в Ruby. Quindi sapete già ce se volete diventare dei pro, vi tocca reeware quelle 4 Дирелит на Farlo Girare.

Vagrant up Crea Una Nuova VM Partire Da un Vagrantfile. Опвторы Avvia La VM, SE Già Esistente Nel Path в Cui Lanciate Il Comando

бродячий ssh APRE UNA SHELL SSH NELLA VM.

SE LA VOSTRA VAGRANTBOX Condivide Un’interfaccia Di Rete Con Il Suo Host, Potrete Eseguire Rirettamente Un SSH Vagrant @ IP_Guest, пароль: брунт. Si Risparmia Qualche Secondo Di attesa, Il Risultato è Il Medesimo.

Превратный остановка Spegne La Vm.

бродячий валит «Интерпретация» IL Vagrantfile E Mostra Eventuali reveri.

Vagrange перезагрузка Eseugue Nuovamente Il Prouprision Del Guest. Nonderete Dati, Tranne Quelli Che Verranno Embalta Direttamente Dal File Di Proupsion Scriitto Da Voi.

бродячий приостановка Mette в SoSpensione La VM. Accuperà un Po di Preziosa Memoria Sul Disco, MA MANTERRA LO ATTO DELLE VOSTRE PHILLAZIONI.

Vagrant Resument «ResusCita» Dalla SoSpensee Una VM.

бродячий уничтожен --f IL POTERE DI UCCIDERE ООН гость (-F) E di Eliminare Qualsiasi Sua Traccia Dal Dipo

ORA CREIMO UNA VM (O ООН Кластер) Cui Poter Lavorare. Для Vagrange è Shartede Usare in in it o un vagrantfile на определенный VM. Quando le Cose iniziano a Richiedere un Pelo di Operazioni в Più, è Meglio Disaccoppiare Gli Elementi.

Il Progetto Richiederà PoCo Laproro

коробки.мль IL файл Che Conterrà Le Conf. DI Base Della/E VM Prosision.sh UNO Script Che Verrà Eeseguito Al Primo Avvio O al Перезагрузка della/e vm Вагрантиль IL файл che vagrange США на Лэнсиар

Deformo Una Struttura Dati Arbitriaria Che Contenga La Configureazione Delle Nostre Macchine. Vagrange, O Meglio Dire Ruby, VI Da La Possibilità di Leggere un Qualsiasi Tipo Di File Dal Dal Dipo. Овимент SCEGLIEREMO UNO YAML, Perché è содействие leggibile Dall’essere Umano. Lo yaml verrà интерпретатор в рубине приезжают Уна Маппа.

---
- hostname: worker1
  role: worker1
  box: bento/ubuntu-20.04
  box_version: 202008.16.0
  cpus: 4
  memory: 2048
  ip: 192.168.57.101
  provision: provision.sh
  shares:
    - host: C:/Users/ozeta/ubuntu-runner/share
      guest: /home/vagrant/share
    - host: C:/Users/ozeta/ubuntu-runner/work
      guest: /home/vagrant/work
  autostart: true
- hostname: worker2
  role: worker2
  box: bento/ubuntu-20.04
  box_version: 202008.16.0
  cpus: 4
  memory: 2048
  ip: 192.168.57.102
  provision: provision.sh
  shares:
    - host: C:/Users/ozeta/ubuntu-runner/share
      guest: /home/vagrant/share
    - host: C:/Users/ozeta/ubuntu-runner/work
      guest: /home/vagrant/work
  autostart: true

Кос вубежен?

NELLA RADICE DEL DOCUCENOO HO DICHIARATO ARAL ARTENTE CONTENENTE 2 OGGETTI ANONIMI. Oggetto oggetto Corrisponde ad una vm che verrà creata sul nostro «. За LO SCOPO DI Questo Esercizio, Le Vm Saranno Идентичное Tranne Che Per L’Indirizzo IP, Ruolo E HostName. L’Oggetto Contiene I Seguenti Campi:

Имя хоста è l’hostname che verrà Assegnato Al Guest. роль è un attributo che potremo Riutilizzare Nel Nostro Vagrantfile. коробка è l’immagine ch justerumo на crare le nostre vm. box_version Идентифицировать La Versione Dell’имимчан. CPU Assegneremo Ad Ogni VM 4 CPU Virtuali. память Assegneremo 2 ГБ DI RAM AD Ogni Macchina. IL Vostro Host Dovrà Quindi Avere 4GB Liberi O, Nel Caso Sia Nembio, Dovete Ridurre Le Dimensioni Assegnate. IP Assegneremo un IP ALLA MACCHINA, CUI POTREMO Connetterci Предоставление Уна Volta Che La Vm Sarà Inizializzata, Verrà Eeseguito Questo Script. Акции Vagrant Configura Accessure Putaulamente Delle Cartelle Condivise Tra Host E Guest. В Questa Sezione Dichioro Arbay Di Dimensione Arbitriaria, Di Corthelle Che Voglio Condivideere Tra Gli Ambienti.

Questa DimoStrazione è Una Semplice PoC, Quindi CI Basta Qualcosa Di Facile: Gampleiamo A Video Una Variabile Recuperata Da Boxes.yml ed instateiamo python3. E PIP3.

Tutti I Comandi Vengono Eseguiti приходят root, quindi Non Sarà Essautio Susare «Sudo» Prima Dei Comandi.

Sarà Lanciato Il Provisioner Shell, нет Avremo La Possibilità Di Interagire Tramite Stdin Con La Nostra Console. Куинди Довремо Fare Fare Molta Attenzione A Приезжает EseGuire I Nostri Comandi.

APT-Get Richiede La Conferma Di Installazione Dei Pacchetti. L’Opzione -y Disabilita La Conferma.

#!/bin/bash
echo "Guest VM IP: ${1}"
apt-get update
apt-get install -y python python3-pip # occhio al -y!

echo "Ciao!"

Сиамати Оривати Финаменте аль CUORE PULSANTE DELLA NOSTRA CONFIGURAZIONE. Nel Vagrantfile Faremo Una Serie di Operazioni DI рутина.

В ScentoLare Verrà Dickiarata Una Private_network. Alla VM Guest Assegnerò unnizizzo IP Statico Arbitrio (Ad Esempio 192.168.57.101) PO POTER ACCEDERE COMODMAMEDE AI Server Che в Futuro Vorrò Esporre Sulle Porte Della Vm. Verrà Creata Una Interfaccia di Rete Virtuale.

SARà Possibile Raggiungere La VM Solo DAL PC Host, Che Sarà Convinto Che La Macchina в вопросе SIA un Qualsiasi PC Sulla Rete.

AL CONTRARIO, на Mettere SU RETE PUBBLICA LA VM, SI UTILIZHA UNA PUSUCTY_NETWORKWORK. USANDO UNA RETE PUBBLICA SARLA NATARIO, DURANTE IL BUTTRAP DELLA VM, SCEGLIERE L’Interfaccia di Rete Fisica. Nel Caso Si Scelga di Usare ООН IP Statico, Stavolta Questo Dovrà Essere Coerente Con Nostra Configurazioni Di Rete.

Lo Ammetto, La Sintassi di Vagra è Da Mal Di Testa. МАГИНГИЯ.

Tentando Di Essere Chiaro Prima Di Leggere Il Nostro Vagrantfile, Questo è Quello Che Ho Intenzion di Fare:

  1. Carico IL файловые коробки.yml в una lista
  2. За Огни В.М. Contenuta Nella Lista:

2.1. Verrà creatà una vm usango le specifiche (host, cpu, ram) dal file.

2.2. Verrà Creato Una Interfaccia di fete privata

2.3. Перед Огни Картельэлла «акции», Creo Una Syncy_Folder

2.4. ESEGUO IL File Di Proupion, PassAndogli un Array Di Argomenti (в Questo Caso Contiene Solo L’Indirizzo IP)

# -*- mode: ruby -*-
# vi: set ft=ruby :
#vagrant 2.2.10

require 'yaml'
boxes = YAML.load_file('./boxes.yml')

Vagrant.configure("2") do |config|
  boxes.each do |box|
    config.vm.define box['hostname'] do |host|
      host.vm.box = box['box']
      host.vm.box_version = box['box_version']
      host.vm.hostname = box['hostname']

      host.vm.provider "virtualbox" do |vb|
        vb.memory = box['memory']
        vb.cpus = box['cpus']
      end

      host.vm.network "private_network", ip: box['ip']

      box['shares'].each do |share|
        host.vm.synced_folder share['host'], share['guest'], type: 'virtualbox' , create: true
      end

      host.vm.provision "shell", path: box['provision'], :args => [box['ip']]

    end
  end
end

Tentiamo Di Capire Che Ustede ….

require 'yaml' # importo il modulo yaml
boxes = YAML.load_file('./boxes.yml') # carico il file

Vagrant.configure("2") do |config| # creo un oggetto config con cui opererò i guest
  boxes.each do |box| ## ciclo nell'array dei box
    ...
  end
end

FIN QUI TUTTO FACILE. Avvio IL Configuratore di Vagrant, Che Per Motivi Mistici è Alla Versione «2». Questo Mi Alloca On Oggetto Config, Che Verrà Impiegato Più Tardi. Fermiamoci ООН Isdante на один redzzare La Sintassi di Ruby. Ciclo для Sull’Array, Terzo Giorno di Scuola.

Intraiamo nel dettaglio:

ADESSO Userò leap api di vagrance per una configureazione Multi Machine E за LA Configureazione di Виртуальная коробка

Questo Punto Punto Lavorare Sulla Singola Macchina. ConfiguRazioni DI Base, POI Rete, POI Общие папки, Ed Infine Il Lancio Del Provisioner Shell.

Vagrance Mette Утилизация Una Vasta Gamma Di проведение

    config.vm.define box['hostname'] do |host| # definisco una nuova vm, a cui do come nome il nostro hostname
      host.vm.box = box['box'] # indico l'immagine da usare
      host.vm.box_version = box['box_version'] # la versione specifica
      host.vm.hostname = box['hostname'] # l'hostname

      host.vm.provider "virtualbox" do |vb| # qui assegno le risorse fisiche
        vb.memory = box['memory']
        vb.cpus = box['cpus']
      end

      host.vm.network "private_network", ip: box['ip'] # imposto il network privato, con ip statico

      box['shares'].each do |share| # ciclo sugli shares definiti nel box.yml
        host.vm.synced_folder share['host'], share['guest'], type: 'virtualbox' , create: true
      end

      host.vm.provision "shell", path: box['provision'], :args => [box['ip']] # lancio un provisioner shell, passo un array che contiene l'ip della macchina

    end
  end

Questo Punto Non Ci Resta Che Provare Il Tutto.

ООН Rapido Check:

PS C:\Users\ozeta\OneDrive\Desktop\ubuntu-runners> vagrant validate
==> vagrant: A new version of Vagrant is available: 2.2.13 (installed version: 2.2.10)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html

Lanciamo Il Prosision. ИМСАМО NOTARE приходят бродягистые идентификаторы La Macchina SU CUI STA LARORANDO:

PS C:\Users\ozeta\OneDrive\Desktop\ubuntu-runners> vagrant up
Bringing machine 'worker1' up with 'virtualbox' provider...
Bringing machine 'worker2' up with 'virtualbox' provider...
==> worker1: Importing base box 'bento/ubuntu-20.04'...
==> worker1: Matching MAC address for NAT networking...
==> worker1: Checking if box 'bento/ubuntu-20.04' version '202008.16.0' is up to date...
==> worker1: Setting the name of the VM: ubuntu-runners_worker1_1605136965674_39052
==> worker1: Clearing any previously set network interfaces...
==> worker1: Preparing network interfaces based on configuration...
    worker1: Adapter 1: nat
    worker1: Adapter 2: hostonly
==> worker1: Forwarding ports...
    worker1: 22 (guest) => 2222 (host) (adapter 1)
==> worker1: Running 'pre-boot' VM customizations...
==> worker1: Booting VM...
==> worker1: Waiting for machine to boot. This may take a few minutes...

AD Certo Certo Punto Sarà Loggata L’Attività del Nostro Provisioner Shell:

==> worker1: Running provisioner: shell...
    worker1: Running: C:/Users/ozeta/AppData/Local/Temp/vagrant-shell20201112-16244-140103d.sh
    worker1: Guest VM IP: 192.168.57.101
    worker1: Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
    worker1: Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
    worker1: Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]
    worker1: Get:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease [98.3 kB]
    worker1: Get:5 http://security.ubuntu.com/ubuntu focal-security/main i386 Packages [153 kB]
    worker1: Get:6 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [367 kB]


...


    worker1: Ciao!

...

    worker2: Setting up gcc-9 (9.3.0-17ubuntu1~20.04) ...
    worker2: Setting up libpython3-dev:amd64 (3.8.2-0ubuntu2) ...
    worker2: Setting up libstdc++-9-dev:amd64 (9.3.0-17ubuntu1~20.04) ...
    worker2: Setting up gcc (4:9.3.0-1ubuntu2) ...
    worker2: Setting up python3-dev (3.8.2-0ubuntu2) ...
    worker2: Setting up g++-9 (9.3.0-17ubuntu1~20.04) ...
    worker2: Setting up g++ (4:9.3.0-1ubuntu2) ...
    worker2: update-alternatives: 
    worker2: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
    worker2: Setting up build-essential (12.8ubuntu1.1) ...
    worker2: Processing triggers for libc-bin (2.31-0ubuntu9) ...
    worker2: Processing triggers for man-db (2.9.1-1) ...
    worker2: Processing triggers for mime-support (3.64ubuntu1) ...
    worker2: Ciao!

Adesso Abbiamo Creato 2 Nuove Vm, Chaiamo Pilotare Sia Nella Maniera Tradizionale, Dal Pannello di Vbox, Che Tramite I Comandi Di Vagrant.

Ланциндо бродячий ssh Vagrance Non Saprà Su Quale Dei 2 Nodi Avvirea La Console. Dovremo Quindi Aggiungere La Destinazione:

Vagrance SSH Worker1.

PS C:\Users\ozeta\OneDrive\Desktop\ubuntu-runners> vagrant ssh worker1
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-42-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Wed 11 Nov 2020 11:33:32 PM UTC

  System load:  0.0               Processes:             131
  Usage of /:   2.4% of 61.31GB   Users logged in:       0
  Memory usage: 8%                IPv4 address for eth0: 10.0.2.15
  Swap usage:   0%                IPv4 address for eth1: 192.168.57.101


121 updates can be installed immediately.
54 of these updates are security updates.
To see these additional updates run: apt list --upgradable



This system is built by the Bento project by Chef Software
More information can be found at https://github.com/chef/bento
vagrant@worker1:~$

Наслаждайтесь поездкой, E Alla Prossima Puntata 🤠

Оригинал: «https://dev.to/ozeta/0-qualcosa-di-dev-ops-vagrant-3f2d»