Cách cài đặt Ansible Semaphore trên Debian 12

theanh

Administrator
Nhân viên
Ansible Semaphore là một giao diện người dùng web nguồn mở cho các playbook Ansible. Nó cho phép triển khai bằng cách sử dụng tự động hóa Ansible thông qua trình duyệt web. Ansible Semaphore được viết hoàn toàn bằng Go. Nó có thể chạy trên Linux, Windows và macOS.

Ansible Semaphore cho phép triển khai thông qua Ansible từ bảng điều khiển quản trị web trực quan và phản hồi. Bạn luôn có thể khôi phục và hoàn nguyên cấu hình và quản lý môi trường, bí mật, kho lưu trữ và khóa truy cập. Nó cũng cho phép bạn chạy playbook theo lịch trình với nhật ký và thông báo chi tiết.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cài đặt Ansible Semaphore trên máy chủ Debian 12. Bạn sẽ cài đặt Semaphore với PostgreSQL làm cơ sở dữ liệu và Nginx làm proxy ngược.

Điều kiện tiên quyết​

Để bắt đầu với hướng dẫn này, hãy đảm bảo bạn có những thứ sau:
  • Máy chủ Debian 12.
  • Người dùng không phải root có quyền quản trị viên.

Cài đặt các phần phụ thuộc​

Để cài đặt Ansible Semaphore, bạn phải cài đặt các phần phụ thuộc như Ansible, PostgreSQL và Nginx trên hệ thống của mình. Bạn sẽ sử dụng PostgreSQL làm cơ sở dữ liệu và Nginx làm proxy ngược.

Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Debian của bạn và cài đặt các phụ thuộc, chẳng hạn như ansible, postgresql cơ sở dữ liệu và nginx máy chủ web.

sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginx

Đầu vào Y để xác nhận cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22266%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy kiểm tra postgresql dịch vụ bằng lệnh bên dưới.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Bạn sẽ thấy dịch vụ postgresql là đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E


Bây giờ hãy kiểm tra trạng thái dịch vụ nginx bằng lệnh sau:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Sau đây, bạn có thể thấy máy chủ web nginx đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E


Cuối cùng, hãy kiểm tra phiên bản ansible bằng lệnh bên dưới. Ansible 2.14 phải được cài đặt trên hệ thống Debian của bạn.

ansible --version


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22730%22%20height=%22277%22%3E%3C/svg%3E

Thiết lập cơ sở dữ liệu​

Bây giờ bạn đã cài đặt các phụ thuộc, bạn sẽ cấu hình PostgreSQL và tạo một cơ sở dữ liệu và người dùng mới mà Ansible Semaphore sẽ sử dụng.

Đăng nhập vào máy chủ PostgreSQL bằng lệnh sau:

sudo -u postgres psql

Bây giờ hãy chạy các truy vấn bên dưới để tạo cơ sở dữ liệu mới semaphoredb và người dùng . Điều chỉnh mật khẩu bằng thông tin của bạn.

TẠO semaphore NGƯỜI DÙNG VỚI MẬT KHẨU 'passw0rd';
TẠO semaphore CƠ SỞ DỮ LIỆU semaphore CHỦ SỞ HỮU semaphore;


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22642%22%20height=%22131%22%3E%3C/svg%3E


Tiếp theo, chạy các truy vấn sau để xác minh danh sách cơ sở dữ liệu và người dùng trong PostgreSQL. Bạn sẽ thấy người dùng mới semaphore và cơ sở dữ liệu semaphoredb khả dụng.

\du
\l

Cuối cùng, hãy nhập quit để thoát khỏi PostgreSQL.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22384%22%3E%3C/svg%3E

Cài đặt Ansible Semaphore​

Ansible Semaphore cung cấp các gói cho nhiều bản phân phối Linux khác nhau, bao gồm Debian/Ubuntu. Bạn có thể tải xuống tệp DEB của Ansible Semaphore và cài đặt nó bằng lệnh dpkg.

Tải xuống gói debian Ansible Semaphore bằng lệnh sau:

VER=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest|grep tag_name | cut -d '"' -f 4|sed 's/v//g')
wget -q https://github.com/semaphoreui/semaphore/releases/download/v${VER}/semaphore_${VER}_linux_amd64.deb

Sau khi tải xuống, hãy cài đặt Ansible Semaphore bằng lệnh dpkg bên dưới:

sudo dpkg -i semaphore_${VER}_linux_amd64.deb

Bên dưới, bạn có thể thấy quá trình cài đặt đã hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh bên dưới để định vị tệp nhị phân semaphore và có thể tìm thấy tại /usr/bin/semaphore.

semaphore nào

Kiểm tra phiên bản Ansible Semaphore bằng lệnh sau. Bạn sẽ thấy Ansible Semaphore 2.9 đã được cài đặt.

phiên bản semaphore
trợ giúp semaphore


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22700%22%20height=%22473%22%3E%3C/svg%3E

Cấu hình Ansible Semaphore​

Trong phần này, bạn sẽ cấu hình cài đặt Ansible Semaphore thư mục, tích hợp Semaphore với PostgreSQL, sau đó thiết lập người dùng và mật khẩu quản trị cho Semaphore. Sau đó, bạn cũng sẽ chạy Semaphore ở chế độ nền như một dịch vụ systemd.

Tạo một thư mục cấu hình mới /etc/semaphore và vào đó. Sau đó, chạy lệnh semaphore setup để cấu hình Ansible Semaphore.

mkdir -p /etc/semaphore; cd /etc/semaphore semaphore setup
  • Nhập 3 để sử dụng PostgreSQL làm cơ sở dữ liệu.
  • Nhập /opt/playbook để thiết lập playbook mặc định thư mục.
  • Nhấn ENTER và giữ nguyên URL công khai theo mặc định.
  • Nhấn ENTER để sử dụng cài đặt thông báo mặc định.
  • Nhập tên người dùng, mật khẩu và địa chỉ email của quản trị viên. Điều này sẽ được sử dụng để đăng nhập vào ứng dụng web Ansible Semaphore.

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22571%22%20height=%22750%22%3E%3C/svg%3E


Sau khi quá trình hoàn tất, bạn sẽ thấy xác nhận bên dưới:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22420%22%3E%3C/svg%3E


Bây giờ bạn đã cấu hình Ansible Semaphore, bạn sẽ tạo một dịch vụ systemd mới và chạy Ansible Semaphore ở chế độ nền.

Tạo một tệp dịch vụ systemd mới /etc/systemd/system/semaphore.service bằng trình soạn thảo nano.

sudo nano /etc/systemd/system/semaphore.service

Chèn cấu hình bên dưới.
Mã:
[Unit]
Description=Semaphore Ansible
Documentation=https://github.com/ansible-semaphore/semaphore
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/semaphore service --config=/etc/semaphore/config.json
SyslogIdentifier=semaphore
Restart=always
[Install]
WantedBy=multi-user.target
Lưu tệp và thoát khỏi trình chỉnh sửa.

Tiếp theo, chạy lệnh systemctl bên dưới để tải lại trình quản lý systemd và áp dụng các thay đổi của bạn.

sudo systemctl daemon-reload

Cuối cùng, hãy chạy lệnh bên dưới để khởi động và kích hoạt dịch vụ semaphore. Sau đó, hãy kiểm tra dịch vụ để đảm bảo dịch vụ đang chạy.

sudo systemctl enable --now semaphore
sudo systemctl status semaphore

Bạn có thể thấy bên dưới, dịch vụ semaphore đang chạy. Và theo mặc định, nó chạy trên cổng 3000.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22299%22%3E%3C/svg%3E

Thiết lập Nginx làm proxy ngược​

Bây giờ Semaphore đang chạy, bạn sẽ thiết lập Nginx làm proxy ngược cho cài đặt Semaphore của mình. Đảm bảo bạn đã chuẩn bị sẵn tên miền (tên miền cục bộ hoặc công cộng).

Tạo cấu hình khối máy chủ mới /etc/nginx/sites-available/semaphore.conf bằng trình soạn thảo nano.

sudo nano /etc/nginx/sites-available/semaphore.conf

Chèn cấu hình sau để thiết lập Nginx làm proxy ngược cho Ansible Semaphore chạy trên cổng 3000. Đảm bảo thay đổi tùy chọn server_name bằng tên miền của bạn.
Mã:
upstream semaphore { server 127.0.0.1:3000; }
server { listen 80; server_name auto.howtoforge.local; client_max_body_size 0; chunked_transfer_encoding on; location / { proxy_pass http://semaphore/; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffering off; proxy_request_buffering off; } location /api/ws { proxy_pass http://semaphore/api/ws; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Origin ""; }
}
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Bây giờ hãy chạy lệnh bên dưới để kích hoạt tệp khối máy chủ semaphore.conf và xác minh cú pháp Nginx của bạn. Nếu bạn có cú pháp đúng, bạn sẽ thấy đầu ra test is successful - syntax is ok.

sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/
sudo nginx -t

Cuối cùng, hãy chạy lệnh sau systemctl lệnh bên dưới để khởi động lại Nginx và áp dụng các thay đổi của bạn.

sudo systemctl restart nginx


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22202%22%3E%3C/svg%3E

Bảo mật Ansible Semaphore bằng HTTPS​

Để bảo mật cài đặt Ansible Semaphore, bạn sẽ bật HTTPS trên proxy ngược Nginx. Bạn sẽ sử dụng Certbot để tạo và cấu hình HTTPS cho Semaphore.

Cài đặt các gói certbotpython3-certbot-nginx bằng lệnh sau:

sudo apt install certbot python3-certbot-nginx -y

Sau khi cài đặt hoàn tất, hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS cho cài đặt Ansible Semaphore của bạn. Đảm bảo thay đổi tên miền và địa chỉ email bằng thông tin của bạn.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --email [emailprotected]-d auto.howtoforge.local

Sau khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ có tại thư mục /etc/letsencrypt/live/domain.com và cài đặt Semaphore của bạn sẽ được bảo mật bằng HTTPS.

Đăng nhập vào Ansible Semaphore​

Truy cập tên miền Semaphore của bạn, là https://auto.howtoforge.local/. Nếu cài đặt thành công, bạn sẽ thấy trang đăng nhập Ansible Semaphore.

Nhập tên người dùng và mật khẩu quản trị viên, sau đó nhấp vào ĐĂNG NHẬP để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22617%22%20height=%22558%22%3E%3C/svg%3E


Bây giờ hãy nhập tên dự án đầu tiên của bạn và nhấp vào Tiếp theo để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22535%22%20height=%22454%22%3E%3C/svg%3E


Bạn sẽ thấy bảng điều khiển Semaphore như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22422%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt Ansible Semaphore trên máy chủ Debian 12. Bạn đã cài đặt Semaphore với máy chủ PostgreSQL và máy chủ web Nginx. Bạn cũng bảo mật Semaphore bằng HTTPS thông qua certbot và Letsencrypt.
 
Back
Bên trên