Giaosucan's blog - Chia sẻ kiến thức theo cách bá đạo

Ticker

20/recent/ticker-posts

SaltStack bình dân học vụ - part 1

Kết quả hình ảnh cho Saltstack
Giới checker có một số thanh niên thích “ăn mặn”, ám chỉ những người thích lái máy bay, những bà chị thân hình đồ sộ, mũm mĩm. Đây là câu chuyện về checker, trong lĩnh vực IT DevOps, cũng có món mặn như vậy. Đó là SaltStack, một phần mềm mã nguồn mở, một hệ thống thuộc nhóm Configuration management, viết bằng Python, sử dụng YAML làm ngôn ngữ giao tiếp với người dùng. Nghe cái tên là biết mặn như muối rồi
Dự án DevOps mình đang làm việc đang sử dụng SaltStack trong việc deploy, quản lý infra, nên bài viết muốn chia sẻ 1 vài thông tin về Tech stack này

SaltStack dùng để làm gì?

Hiểu đơn giản thế này, nếu như bạn phải quản lý một hệ thống DevOps, gồm nhiều môi trường DEV, QA, Staging, PROD, số server lên đến cả nghìn. Hiển nhiên, bạn không thể nào có thể quản lý servers bằng việc access vào từng con để configure, check log …. được. Nhưng với SaltStack, bạn chỉ cần đứng ở 1 máy salt-master, có thể run command trên nhiều con minion (slave) cùng một lúc (Remote execution). 
Một tính năng quan trọng nữa của SaltStack Configuration Managements, đảm bảo việc deploy, config hệ thống hoàn toàn tự động bằng Infra as Code. Các bước cài đặt, cấu hình hệ thống được viết dưới dạng YAML format, gọi là state files. Như vậy khi deploy hệ thống, admin chỉ việc run câu lệnh với các tham số tương ứng, là hệ thống được deploy nhanh chóng, tránh việc làm tay chân

Thực hành với SaltStack

Bài viết này, không muốn nói nhiều về lý thuyết dài dòng, vì các bạn có thể search keyword saltstack trên Google để hiểu hơn về đặc điểm và architect của SaltStack
Vì SaltStack hoạt động theo mô hình master – minion như ở dưới
Kết quả hình ảnh cho saltstack architecture
Mình launch 2 con Ubuntu EC2 trên AWS, một là salt-master, 1 là minion


Hai EC2 này nằm trong 1 VPC, và được set security group để đảm bảo security  

Install Salt / Saltstack on Ubuntu

Sau khi launch EC2, ssh vào salt master để cài đặt salt-master


echo "deb http://repo.saltstack.com/apt/ubuntu/18.04/amd64/latest bionic main" | sudo tee /etc/apt/sources.list.d/saltstack.list
sudo apt -y install salt-api salt-cloud salt-master salt-minion salt-ssh salt-syndic


Nếu đang active firewall, open port 4505 và 4506
sudo ufw allow proto tcp from any to any port 4505,4506


Sau khi cài đặt, bạn sẽ thấy list salt directories 
Service salt-master is active
Thông tin configure của salt-master nằm trong ở file /etc/salt/master
Bạn có thể cấu hình 1 số thông tin cơ bản như interface, pillar_roots, file_roots (mấy cái này cụ thể là gì thì đọc bài sau sẽ rõ)
Trên salt-minion, cài đặt package salt-minion
sudo apt install salt-minion
Trên /etc/hosts của salt-master set DNS name của salt-master
10.2.2.142 là IP của salt-master
Run salt-key –F master và salt-key –L để accepted the keys
Do salt-master và minion sử dụng public/private key để communicated với nhau, nên cần salt-master accepts key này
Run command để kiểm tra salt-master và minion hoạt động bình thường
salt ‘*’ test.ping


Đến lúc này salt-master và minion đã communicate với nhau OK
Bây giờ bạn có thể run các command khác nhau trên minion từ salt-master
Lệnh trên cho phép view thư mục /etc của tất cả các minion
Trên đây là một vài giới thiệu về Salt-Stack, chúng ta sẽ đi sâu hơn ở các bài sau

Đăng nhận xét

0 Nhận xét