Для участі в розіграші Telegram Premium підпишись на канал і приймай участь вище. 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Яка файлова структура у Linux(UNIX) систем, що розташовані в /etc, /dev, /proc, /var директоріях?
Питання по Лінуксу зі співбесіди.❓
/etc - директорія для конфігураційних файлів системи.
Наприклад:
Файл /ets/passwd - налаштування користувачів системи.
За допомогою файлу /etc/hosts можна підправити DNS записи, це корисно для локального тестування.
А nginx-конфіги зачасту можна знайти у директорії /etc/ngnix/.
/dev - директорія для файлів пристроїв.
Наприклад:
/dev/sda — файл пристрою, який представляє перший жорсткий диск у системі.
/dev/null — спеціальний файл, що виконує роль "чорної діри", до якої можна спрямовувати непотрібні дані.
/proc - директорія відображення інформації про процеси та стан ядра.
Прикольна особливість Лінуксових систем, що вони дозволяють зчитувати інформацію про стан системи із файлів.
Команда cat /proc/cpuinfo виведе інформацію про процесор.
/var - директорія для змінних файлів.
Містить файли, що змінюються під час роботи системи. Наприклад, тут зберігаються логи - /var/log
#linux
DevOps Інженер 👨🏼💻
Питання по Лінуксу зі співбесіди.
/etc - директорія для конфігураційних файлів системи.
Наприклад:
Файл /ets/passwd - налаштування користувачів системи.
За допомогою файлу /etc/hosts можна підправити DNS записи, це корисно для локального тестування.
А nginx-конфіги зачасту можна знайти у директорії /etc/ngnix/.
/dev - директорія для файлів пристроїв.
Наприклад:
/dev/sda — файл пристрою, який представляє перший жорсткий диск у системі.
/dev/null — спеціальний файл, що виконує роль "чорної діри", до якої можна спрямовувати непотрібні дані.
/proc - директорія відображення інформації про процеси та стан ядра.
Прикольна особливість Лінуксових систем, що вони дозволяють зчитувати інформацію про стан системи із файлів.
Команда cat /proc/cpuinfo виведе інформацію про процесор.
/var - директорія для змінних файлів.
Містить файли, що змінюються під час роботи системи. Наприклад, тут зберігаються логи - /var/log
#linux
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Що таке Terraform 🖼️ ?
Якщо ми хочемо взаємодіяти з ресурсами у хмарі (AWS🖼️ , GCP 🏛 , Azure 🖼️ ), ми йдемо у UI або використовуємо CLI (тут ще 1000 таких або) АБО використовуємо Terraform. Тобто, Terraform це ще 1 надстройка над API хмари, як і її CLI, UI ну або, наприклад, Python ліба.
Terraform має багато власних плюшок - одна із них це state менеджмент, що потрібна для відстежування стану ресурсів у хмарі упродовж всього їх існування.
Наприклад, ми, за допомогою Terraform, створили машину розміром medium і через деякий час вирішили зекономити і зменшити її розмір на small. Ми вносимо цю зміну у конфігурацію і Terraform не стане видаляти стару машину і піднімати меншу. У своєму state він вже закріпив цю машину за її унікальним ID і тепер просто зменшить її розмір, відобразивши заплановані зміни на екрані)
Terraform - мій найулюбленіший DevOps-інструмент, оскільки при своїй простоті, він має ряд корисних властивостей, які я в тому числі буду описувати на цьому каналі. Базове розуміння цієї тули пришвидшить процес розробки, який включає в себе створення хмарної інфраструктури.
#terraform
DevOps Інженер 👨🏼💻
Якщо ми хочемо взаємодіяти з ресурсами у хмарі (AWS
Terraform має багато власних плюшок - одна із них це state менеджмент, що потрібна для відстежування стану ресурсів у хмарі упродовж всього їх існування.
Наприклад, ми, за допомогою Terraform, створили машину розміром medium і через деякий час вирішили зекономити і зменшити її розмір на small. Ми вносимо цю зміну у конфігурацію і Terraform не стане видаляти стару машину і піднімати меншу. У своєму state він вже закріпив цю машину за її унікальним ID і тепер просто зменшить її розмір, відобразивши заплановані зміни на екрані)
Terraform - мій найулюбленіший DevOps-інструмент, оскільки при своїй простоті, він має ряд корисних властивостей, які я в тому числі буду описувати на цьому каналі. Базове розуміння цієї тули пришвидшить процес розробки, який включає в себе створення хмарної інфраструктури.
#terraform
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Що таке Terraform provider?
Питання по Тераформу зі співбесіди.❓
У попередньому пості ми розглянули Terraform, як інструмент взаємодії із хмарами. Але насправді Terraform може взаємодіяти із будь-якою APIшкою. Деякі ентузіасти, наприклад, замовляють собі через нього піцу) Звісно є купа більш юзабельних прикладів.
В цьому сценарії Terraform провайдер виступає цим "мостом" між Terraform конфігурацією і бажаною API. Написати свій провайдер можна на Golang, а провайдери вищеописаних хмар - це потужні рішення, які зазавичай менеджить команда самого Terraform. Кожен провайдер включає ряд описаних ресурсів і дата сурсів для використання у конфігураціях, суть яких ми розглянемо пізніше.
#terraform
DevOps Інженер 👨🏼💻
Питання по Тераформу зі співбесіди.
У попередньому пості ми розглянули Terraform, як інструмент взаємодії із хмарами. Але насправді Terraform може взаємодіяти із будь-якою APIшкою. Деякі ентузіасти, наприклад, замовляють собі через нього піцу) Звісно є купа більш юзабельних прикладів.
В цьому сценарії Terraform провайдер виступає цим "мостом" між Terraform конфігурацією і бажаною API. Написати свій провайдер можна на Golang, а провайдери вищеописаних хмар - це потужні рішення, які зазавичай менеджить команда самого Terraform. Кожен провайдер включає ряд описаних ресурсів і дата сурсів для використання у конфігураціях, суть яких ми розглянемо пізніше.
#terraform
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Як підняти аплікейшн у контейнері? 🖼️
Під час роботи ми часто потребуємо програму "на пару раз". От нам раз на два місяці захотілось підключатись до бази через UI інтерфейс або для локальних тестів підняти MySQL базу. В мене таких прикладів регулярно до пʼяти на місяць.
Оскільки такі речі є разовими, я не люблю встановлювати і зберігати ці програми у себе на компʼютері, вважаю що можна зробити простіше та зручніше - підіймати ці програми у контейнерах. Для цього достатньо встановити одну утиліту - Docker.
Розглянемо на прикладі: потрібно підняти локально MySQL, щоб підключитись до неї і протестувати програму. Можна почати гуглити install mysql linux... АБО написати наступне у своєму терміналі
Тепер сервер доступний за адресою localhost:3306
Я вважаю цей метод більш зручним бо:
1) Легко вказати версію апки за допогою імейдж-тагу mysql/mysql-server:8.0
2) Не треба паритись: як встановити, включити і, за потреби, видалити програму. Достатньо видалити контейнер.
3) Універсальність рішення на більшості систем.
#docker
DevOps Інженер 👨🏼💻
Під час роботи ми часто потребуємо програму "на пару раз". От нам раз на два місяці захотілось підключатись до бази через UI інтерфейс або для локальних тестів підняти MySQL базу. В мене таких прикладів регулярно до пʼяти на місяць.
Оскільки такі речі є разовими, я не люблю встановлювати і зберігати ці програми у себе на компʼютері, вважаю що можна зробити простіше та зручніше - підіймати ці програми у контейнерах. Для цього достатньо встановити одну утиліту - Docker.
Розглянемо на прикладі: потрібно підняти локально MySQL, щоб підключитись до неї і протестувати програму. Можна почати гуглити install mysql linux... АБО написати наступне у своєму терміналі
docker run --name='mysqlcontainer' -d -p 127.0.0.1:3306:3306 mysql/mysql-server
Тепер сервер доступний за адресою localhost:3306
Я вважаю цей метод більш зручним бо:
1) Легко вказати версію апки за допогою імейдж-тагу mysql/mysql-server:8.0
2) Не треба паритись: як встановити, включити і, за потреби, видалити програму. Достатньо видалити контейнер.
3) Універсальність рішення на більшості систем.
#docker
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16 5 2
Яка різниця між Terraform resource та data source?
Питання по Тераформу🖼️ зі співбесіди. ❓
Створюючи Terraform конфігурацію, ми підключаємо до неї усі необхідні провайдери, наприклад "aws", "google" або "kubernetes". Кожен такий провайдер описує ряд ресурсів і дата сурсів для використання у конфігурації.
Найбільш поширеним є блок resource. Це обʼєкт у конфігурації, що дозволяє стоврювати, змінювати, відстежувати та видаляти віддаленний ресурс (GET, PUT, DELETE...) - в залежності від провайдеру це може бути екземпляр бази даних, kubernetes pod або юзер. В шапці блоку зазначається назва ресурсу, а в його тілі описуються відповідні характеристики наступним чином:
Data source відрізняється від resource тим, що для такого обʼєкту Terraform може застосовувати виключно операцію читання (GET). Це корисно у випадках, коли нам не підвласно створення ресурсу, але необхідно посилатись на нього у конфігурації. Наприклад, це може бути загальнодоступний знімок ОС або ресурс, створений іншим ресурсом.
#terraform
DevOps Інженер 👨🏼💻
Питання по Тераформу
Створюючи Terraform конфігурацію, ми підключаємо до неї усі необхідні провайдери, наприклад "aws", "google" або "kubernetes". Кожен такий провайдер описує ряд ресурсів і дата сурсів для використання у конфігурації.
Найбільш поширеним є блок resource. Це обʼєкт у конфігурації, що дозволяє стоврювати, змінювати, відстежувати та видаляти віддаленний ресурс (GET, PUT, DELETE...) - в залежності від провайдеру це може бути екземпляр бази даних, kubernetes pod або юзер. В шапці блоку зазначається назва ресурсу, а в його тілі описуються відповідні характеристики наступним чином:
resource "aws_instance" "web" {
ami = "ami-a1b2c3d4"
instance_type = "t2.micro"
}
Data source відрізняється від resource тим, що для такого обʼєкту Terraform може застосовувати виключно операцію читання (GET). Це корисно у випадках, коли нам не підвласно створення ресурсу, але необхідно посилатись на нього у конфігурації. Наприклад, це може бути загальнодоступний знімок ОС або ресурс, створений іншим ресурсом.
data "aws_ami" "web" {
filter {
name = "tag:Component"
values = ["web"]
}
most_recent = true
}
resource "aws_instance" "web" {
ami = data.aws_ami.web.id
instance_type = "t2.micro"
}
#terraform
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Що таке AWS 🖼️ і як підняти свій перший EC2 інстанс?
AWS - це набір хмарних сервісів, що надають розробникам інструменти для розгортання і масштабування власних додатків. Одним із базових AWS сервісів є EC2🖼️ .
Цей сервіс дозволяє створювати віртуальні машини різного розміру із по-хвилинною оплатою.
Ось приклад створення маленького тестового інстансу, робиться це всього у декілька кроків. Цей інстанс буде розміщено у публічній мережі із можливістю підключитись по SSH через інтерфейс AWS. (це не кращий метод, але для тесту підійде)
Після тестування не забудьте видалити інстанс у вкладці Instances і за наявності диск у вкладці Volumes.
#aws
DevOps Інженер 👨🏼💻
AWS - це набір хмарних сервісів, що надають розробникам інструменти для розгортання і масштабування власних додатків. Одним із базових AWS сервісів є EC2
Цей сервіс дозволяє створювати віртуальні машини різного розміру із по-хвилинною оплатою.
Ось приклад створення маленького тестового інстансу, робиться це всього у декілька кроків. Цей інстанс буде розміщено у публічній мережі із можливістю підключитись по SSH через інтерфейс AWS. (це не кращий метод, але для тесту підійде)
Після тестування не забудьте видалити інстанс у вкладці Instances і за наявності диск у вкладці Volumes.
#aws
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Як автоматично виконувати скрипти у заданий час? 🐧
Crontab - це утиліта, яка дозволяє планувати такі завдання. Це може знадобитись для автоматизації бекапів, модифікації бази даних та менеджменту логів.
Для початку достатньо прописати наступну команду і обрати бажаний текстовий редактор:
У кінці відкритого файлу необхідно написати інструкції на регулярне виконання скриптів у наступному форматі:
Корисні ресурси:
crontab.guru - зручний онлайн-редактор розкладу формату cron
cronitor.io - моніторінг для crontab. Працює шляхом встановлення додаткової утиліти на машину.
#linux
DevOps Інженер 👨🏼💻
Crontab - це утиліта, яка дозволяє планувати такі завдання. Це може знадобитись для автоматизації бекапів, модифікації бази даних та менеджменту логів.
Для початку достатньо прописати наступну команду і обрати бажаний текстовий редактор:
crontab -e
У кінці відкритого файлу необхідно написати інструкції на регулярне виконання скриптів у наступному форматі:
minute hour day-of-month month day-of-week command
30 17 * * 1 /path/to/command
Корисні ресурси:
crontab.guru - зручний онлайн-редактор розкладу формату cron
cronitor.io - моніторінг для crontab. Працює шляхом встановлення додаткової утиліти на машину.
#linux
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub 📱 приліг, хай поправляється.
https://www.githubstatus.com
UPD. Кажуть, що починились.
DevOps Інженер 👨🏼💻
https://www.githubstatus.com
UPD. Кажуть, що починились.
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Для участі в розіграші трьох Telegram Premium підпишись на канал і приймай участь вище. 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Як створити користувача в AWS 🖼️ ?
Root-юзер - супер-адмін аккаунту, у якому ви знаходитесь після реєстрації в AWS. Моя рекомендація - не використовувати його повсякденно, а краще взагалі. Підключити MFA, зробити дії описані нижче і забути про нього.
Паролі не забувати, а покласти в "тумбочку", щоб після реєстрації на AWS, там хоч шось було.😄
Які альтернативи?
На власному акаунті - створити IAM🖼️ юзера. IAM - це один із сервісів AWS, що дозволяє менеджити доступ у хмарі.
Оскільки аккаунт наш - то можна видати полісі AdministratorAccess. Використання такого юзера - набагато безпечніше. До нього також треба піключити MFA.
На акаунті "не власному", я б із самого початку радив дивитись у бік AWS Identity Center, це тутешнє SSO і "бест практіс" Амазону. Його ми розглянемо пізніше.
#aws
DevOps Інженер 👨🏼💻
Root-юзер - супер-адмін аккаунту, у якому ви знаходитесь після реєстрації в AWS. Моя рекомендація - не використовувати його повсякденно, а краще взагалі. Підключити MFA, зробити дії описані нижче і забути про нього.
Паролі не забувати, а покласти в "тумбочку", щоб після реєстрації на AWS, там хоч шось було.
Які альтернативи?
На власному акаунті - створити IAM
Оскільки аккаунт наш - то можна видати полісі AdministratorAccess. Використання такого юзера - набагато безпечніше. До нього також треба піключити MFA.
На акаунті "не власному", я б із самого початку радив дивитись у бік AWS Identity Center, це тутешнє SSO і "бест практіс" Амазону. Його ми розглянемо пізніше.
#aws
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Вітаю, останнім часом роздумую про контент на цьому каналі. Як його зробити найбільш корисним і цікавим вам і мені. Щоб більше розуміти картину, попрошу відповісти на опитування нижче. 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥1
Що таке Infrastructure as Code (IaC)? ❓
Реалізація проекту потребує розгортання багатьох компонентів - мережа, сервери, бази даних... і купа іншого. І непогано було б це все якось "трекати", вести облік бажаних ресурсів.
IaC — це спосіб управління хмарною інфраструктурою використвуючи код.
Навіщо мені це?
1) Автоматичне розгортання ресурсів, описаних у коді
2) Можливість швидкого розгортання інфраструктури у різних середовищах одного типу (різні AWS аккаунти/регіони, k8s кластери)
3) Єдина точка правди. Ми маємо репозиторій💻 , де описується вся інфраструктура проєкту, будь які відхилення від коду, мають бути виправлені.
4) Версіонування💻 інфраструктури, можливість відкатитися на "вчорашню" конфігурацію.
Реалізуючи проєкт "вручну", легко забути про якусь машину або видані доступа. Написавши їх через код, ми завжди будемо трекати їх статус і, за необхідності, видалимо при міграції.
Надалі ми розглянемо декілька різних за своїм принципом рішень, знайомлячись із CI/CD та GitOps, тож слідкуйте.
#terraform
DevOps Інженер 👨🏼💻
Реалізація проекту потребує розгортання багатьох компонентів - мережа, сервери, бази даних... і купа іншого. І непогано було б це все якось "трекати", вести облік бажаних ресурсів.
IaC — це спосіб управління хмарною інфраструктурою використвуючи код.
Навіщо мені це?
1) Автоматичне розгортання ресурсів, описаних у коді
2) Можливість швидкого розгортання інфраструктури у різних середовищах одного типу (різні AWS аккаунти/регіони, k8s кластери)
3) Єдина точка правди. Ми маємо репозиторій
4) Версіонування
Реалізуючи проєкт "вручну", легко забути про якусь машину або видані доступа. Написавши їх через код, ми завжди будемо трекати їх статус і, за необхідності, видалимо при міграції.
Надалі ми розглянемо декілька різних за своїм принципом рішень, знайомлячись із CI/CD та GitOps, тож слідкуйте.
#terraform
DevOps Інженер 👨🏼💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12 5