Serverspec là gì?

serverspec

Serverspec là gì?

1. Giới thiệu chung về Serverspec

Serverspec đơn giản là một tool có thể tự động kiểm tra server đã được config đúng hay chưa thông qua câu lệnh. Serverspec được tạo ra dựa trên Test Framework RSpec được viết bằng ngôn ngữ Ruby. Cái tên Serverspec được bắt nguồn từ Server+Rspec=Serverspec. Câu lệnh của Serverspec được viết theo cú pháp của Rspec. Ví dụ muốn biết server dã cài nginx chưa thì sẽ kiểm tra bằng đoạn code sau:

Serverspec sẽ test server bằng cách cho chạy ngầm câu lệnh UNIX hoặc câu lệnh PowerShell trên server cần test. Và người dùng sẽ không viết test script trực tiếp bằng câu lệnh UNIX hoặc PowerShell mà thông qua hình thức YAML. Serverspec sẽ dựa vào Specinfra Library để chuyển hóa câu lệnh từ hình thức YAML sang hình thức UNIX command hoặc Windows command nên cùng một đoạn code chúng ta có thể test trên Linux lẫn Windows.

Có thể test trực tiếp trên server hoặc test từ xa thông qua SSH hay là WinRM và cả hai cách đều cho kết quả giống nhau.

2. Mục đích sử dụng của Serverspec

Serverspec có những mục đích sử dụng như sau:

● Quản lý server cũng như những phần mềm cài vào server
● Phát triển Infra As Code dựa vào TDD (Test Driven Development)
● Tự động hóa việc check lại server sau khi config
● Giám sát những server đang chạy
● kiểm tra server sau khi restart

3. Serverspec có thực sự cần thiết

Nếu config server thủ công (không dùng tool config server tự động như Ansible, Chef hay Puppet) thì việc dùng Serverspec để check lại những gì mình đã config là rất cần thiết. Vì trong quá trình config server thủ công rất dễ xảy ra lỗi mà chúng ta khó có thể phát hiện được khi config một lượng lớn server cùng một lúc. Thì lúc này nếu dùng Serverspec chúng ta có thể test ngay được những chỗ cần phải sửa lại trên server một cách dễ dàng và nhanh chóng giúp chúng ta tiết kiệm được rất nhiều thời gian.

4. Cách cài Serverspec trên CentOS

Serverspec được thiết kế để dễ cài đặt và sử dụng. Chúng ta chỉ cần cài đặt Serverspec lên một server nhất định. Sau đấy từ server này chúng ta có thể SSH đến những server cần test để test lại những gì chúng ta đã config mà không cần phải cài thêm agent lên server đấy.

● Cài đặt Serverspec

Serverspec được cài đặt như câu lệnh bên dưới:

● Setup trạng thái ban đầu cho Serverspec

Sẽ setup bằng câu lệnh như sau:

Trong quá trình setup sẽ hiện ra màn hình như bên dưới:

Cấu trúc của các file mẫu vừa tạo ra là như sau:

5. Cách sử dụng Serverspec

Ví dụ chúng ta muốn test trạng thái của phần mềm Apache chạy trên CentOS thì chúng ta có thể tạo file test (spec/localhost/httpd_spec.rb)như bên dưới:

Khi chạy file “spec/localhost/httpd_spec.rb” ở trên thì sẽ cho kết quả như sau:

Ngoài ra chúng ta có thể kết hợp Serverspec với Jenkins để có thể test server một cách trực quan hơn thông qua GUI của Jenkins, nhất là khi phải test một lượng lớn server cùng một lúc.

Leave a Reply

Your email address will not be published. Required fields are marked *