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.
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ư
sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginx
Đầu vào
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
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Bạn sẽ thấy dịch vụ
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ụ
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Sau đây, bạn có thể thấy máy chủ web
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 --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22730%22%20height=%22277%22%3E%3C/svg%3E
Đă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
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
\du
\l
Cuối cùng, hãy nhập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22384%22%3E%3C/svg%3E
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
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 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
Tạo một thư mục cấu hình mới
mkdir -p /etc/semaphore; cd /etc/semaphore semaphore setup
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
sudo nano /etc/systemd/system/semaphore.service
Chèn cấu hình bên dưới.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, chạy lệnh
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ụ
sudo systemctl enable --now semaphore
sudo systemctl status semaphore
Bạn có thể thấy bên dưới, dịch vụ
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22299%22%3E%3C/svg%3E
Tạo cấu hình khối máy chủ mới
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
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ủ
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
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
Cài đặt các gói
sudo apt install certbot python3-certbot-nginx -y
Sau khi cài đặt hoàn tất, hãy chạy lệnh
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
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
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ệnhdpkg
.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
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 ""; }
}
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
certbot
và python3-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 quacertbot
và Letsencrypt.