payroll

мало не забув занотувати собі на згадку: сьогодні прийшли гроші за два перших трижні стажування, 1'050 канадських долари ($19 за годину мінус податки). можна вважати, що це моя перша зарплата в канаді.

щоправда, до цього я вже заробив кількадесят доларів офіційно за тюторинг з математики та python в коледжі, і десь півтори сотні готівкою за невеликі підсобні роботи для одного дідка… але я то не рахую.
ще трохи про створення віртуальних машин за допомогою vagrant. перейдімо до автоматизованої конфігурації (provisioning)… як?

іх єсть у мєня. себто, вичитав і пробую:

config.vm.define "ansible" do |ansible|
 ansible.vm.box = BOX_BASE
 ansible.vm.hostname = "ansible"
 ansible.vm.network "private_network", ip: "192.168.8.10"
 ansible.vm.network :forwarded_port, guest: 22, host: 8022
 
 # Provisioning: 
 # ...install ansible
 ansible.vm.provision "ansible", type: "shell", path: "scripts/setup_ansible.sh"
 # ...install some useful tools: lf file manager and micro text editor
 ansible.vm.provision "tools", type: "shell", path: "scripts/setup_tools.sh"
end

два простеньких скрипти bash лежать на хості, але запускаються на віртуалці ansible одразу після старту:
  • scripts/setup_ansible.sh — зовсім примітивний, встановлює ansible із залежностями з репозиторіїв debian;
  • scripts/setup_tools.sh — не набагато складніший, затягує бінарники двох маленьких софтин, без яких незручно: lf (файловий менеджер) та micro (текстовий редактор).
навіщо два? бо тренувався запускати окремо, наприклад:

> vagrant provision ansible --provision-with tools

але навіщо все це — ти ж вивчав мережі!? тому що infrastructure as code кермує, і все рухається до цього — навіть cisco.

якщо вагрант сховав ключі…

якщо хотіти трішки спростити собі життя і змусити vagrant використовувати той самий приватний ключ для всіх «коробок» за допомогою ось цієї опції у Vagrantfile’і…

config.ssh.insert_key = false

то цей «один на всіх» ключ insecure_private_key… буде згенеровано не в теці з Vagrantfile, що було би логічно — а деінде.

де? шукаємо:

vagant ssh-config

серед іншого, тут буде шлях до приватного ключа, і на windows він матиме приблизно такий вигляд: C:\Users\<користувач>\.vagrant.d\insecure_private_key.
натрапив на таке у фейсбуці:
цитата«після навчання в українських вишах студенти знають іноземні мови гірше, ніж коли вони вступали!» (павло пастушенко, facebook)
пригадав одразу, що шість років тому я теж нарікав у щоденнику на якість вивчення іноземної мови в українській школі, та й на якість освіти загалом. в коментарях я ще стверджував таке:
цитата | «додати можу ще таке: після переїзду за кордон і занурення в мовне середовище дитина протягом року «зненацька» починає розуміти і розмовляти на рівні, достатньому для вирішення безпосередніх потреб спілкування» (щоденник)
щоправда, тоді я це казав, не маючи безпосереднього досвіду, за відгуками інших родин. сьогодні, через (майже) три роки після іміграції до канади, я його маю, і трохи розповім про своїх дітей.


ало, вагрант? це суперпуті!

щоби за-ssh-тися до «коробки» vagrant за допомогою superputty/putty/kitty, доведеться:

а) конвертувати приватний ключ ssh до формату ppk за допомогою puttygen;

б) вказати додатковий параметр для з’єднання (див. зняток екрану):

-i <шлях до файлу .ppk>

гаразд, тепер можна далі читати «ansible up and running».

продовжую вивчати vagrant методом «наукового тику» (насправді ні): запропонований в підготовчому розділі «ansible up and running» варіант запускати одну тестову машину мені не підійшов — ansible не працює на windows (це не зовсім правда, але…), тож мені потрібно дві тестових віртуалки: одна як сервер, на другій ansible. як це зробити з vagrant?

multi-machine

виявляється, все передбачено. додаємо преконфігурацію приватної мережі зі статичними адресами та переадресування портів — і маємо Vagrantfile (див. далі), який піднімає дві «коробки»:
  • server (192.168.8.1, порт 22 <- 8122 на хості)
  • ansible (192.168.8.2, порт 22 <- 8222 на хості)
до кожної можна за-ssh-тися двома способами (з теки з Vagrantfile’ом):

vagrant ssh <назва>

або

ssh vargant@127.0.0.1 -p 8x22 -i .\.vagrant\machines\<назва>\virtualbox\private_key