Ansible 설치 · 4 min read · Oct 19, 2025
Debian 12에 Ansible Semaphore 설치하는 방법

Ansible Semaphore는 Ansible 플레이북을 위한 오픈 소스 웹 UI입니다. 이를 통해 웹 브라우저를 통해 Ansible 자동화를 사용하여 배포할 수 있습니다. Ansible Semaphore는 순수하게 Go로 작성되었습니다. Linux, Windows 및 macOS에서 실행할 수 있습니다.
Ansible Semaphore는 직관적이고 반응형인 웹 관리 대시보드를 통해 Ansible을 통한 배포를 허용합니다. 항상 구성을 롤백하고 복원할 수 있으며 환경, 비밀, 인벤토리 및 액세스 키를 관리할 수 있습니다. 또한 자세한 로그 및 알림과 함께 스케줄에 따라 플레이북을 실행할 수 있습니다.
이 가이드에서는 Debian 12 서버에 Ansible Semaphore를 설치하는 방법을 안내합니다. PostgreSQL을 데이터베이스로, Nginx를 리버스 프록시로 사용하여 Semaphore를 설치합니다.
필수 조건
이 가이드를 시작하려면 다음이 필요합니다:
- Debian 12 서버.
- 관리자 권한이 있는 비루트 사용자.
의존성 설치
Ansible Semaphore를 설치하려면 시스템에 Ansible, PostgreSQL 및 Nginx와 같은 의존성을 설치해야 합니다. PostgreSQL을 데이터베이스로, Nginx를 리버스 프록시로 사용할 것입니다.
먼저 아래 명령어를 실행하여 Debian 패키지 인덱스를 업데이트하고 ansible, postgresql 데이터베이스 및 nginx 웹 서버와 같은 의존성을 설치합니다.
sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginx설치 확인을 위해 Y를 입력합니다.

설치가 완료되면 아래 명령어로 postgresql 서비스를 확인합니다.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresqlpostgresql 서비스가 실행 중인 것을 확인할 수 있습니다.

이제 다음 명령어로 nginx 서비스 상태를 확인합니다.
sudo systemctl is-enabled nginx
sudo systemctl status nginx다음과 같이 nginx 웹 서버가 실행 중인 것을 확인할 수 있습니다.

마지막으로 아래 명령어로 ansible 버전을 확인합니다. Ansible 2.14가 Debian 시스템에 설치되어 있어야 합니다.
ansible --version
데이터베이스 설정
이제 의존성을 설치했으므로 PostgreSQL을 구성하고 Ansible Semaphore가 사용할 새 데이터베이스와 사용자를 생성합니다.
아래 명령어로 PostgreSQL 서버에 로그인합니다.
sudo -u postgres psql이제 아래 쿼리를 실행하여 새 데이터베이스 semaphoredb와 사용자 semaphore를 생성합니다. 비밀번호는 본인의 정보로 조정합니다.
CREATE USER semaphore WITH PASSWORD 'passw0rd';
CREATE DATABASE semaphoredb OWNER semaphore;다음으로 아래 쿼리를 실행하여 PostgreSQL의 데이터베이스 및 사용자 목록을 확인합니다. 새 사용자 semaphore와 데이터베이스 semaphoredb가 사용 가능하다는 것을 확인할 수 있습니다.
\du
\l마지막으로 quit를 입력하여 PostgreSQL에서 종료합니다.

Ansible Semaphore 설치
Ansible Semaphore는 Debian/Ubuntu를 포함한 다양한 Linux 배포판을 위한 패키지를 제공합니다. Ansible Semaphore의 DEB 파일을 다운로드하고 dpkg 명령어로 설치할 수 있습니다.
아래 명령어로 Ansible Semaphore Debian 패키지를 다운로드합니다.
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다운로드가 완료되면 아래 dpkg 명령어로 Ansible Semaphore를 설치합니다.
sudo dpkg -i semaphore_${VER}_linux_amd64.deb아래에서 설치가 완료된 것을 확인할 수 있습니다.

이제 아래 명령어로 semaphore 바이너리를 찾습니다. /usr/bin/semaphore에 있어야 합니다.
which semaphore아래 명령어로 Ansible Semaphore 버전을 확인합니다. Ansible Semaphore 2.9가 설치되어 있어야 합니다.
semaphore version
semaphore help
Ansible Semaphore 구성
이 섹션에서는 Ansible Semaphore 설치 디렉토리를 구성하고 PostgreSQL과 Semaphore를 통합한 다음 Semaphore의 관리자 사용자 및 비밀번호를 설정합니다. 그 후, Semaphore를 백그라운드에서 systemd 서비스로 실행합니다.
새 구성 디렉토리 /etc/semaphore를 만들고 그 안으로 들어갑니다. 그런 다음 semaphore setup 명령어를 실행하여 Ansible Semaphore를 구성합니다.
mkdir -p /etc/semaphore; cd /etc/semaphore
semaphore setup- 데이터베이스로 PostgreSQL을 사용하려면
3을 입력합니다. - 기본 플레이북 디렉토리를 설정하려면
/opt/playbook을 입력합니다. - ENTER를 눌러 공개 URL을 기본값으로 둡니다.
- 기본 알림 설정을 사용하려면 ENTER를 누릅니다.
- 관리자 사용자 이름, 비밀번호 및 이메일 주소를 입력합니다. 이는 Ansible Semaphore 웹 애플리케이션에 로그인하는 데 사용됩니다.

프로세스가 완료되면 아래와 같은 확인 메시지가 표시됩니다:

이제 Ansible Semaphore를 구성했으므로 새 systemd 서비스 파일을 생성하고 Ansible Semaphore를 백그라운드에서 실행합니다.
nano 편집기로 새 systemd 서비스 파일 /etc/systemd/system/semaphore.service를 생성합니다.
sudo nano /etc/systemd/system/semaphore.service아래 구성을 삽입합니다.
[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파일을 저장하고 편집기를 종료합니다.
다음으로 아래 systemctl 명령어를 실행하여 systemd 관리자를 다시 로드하고 변경 사항을 적용합니다.
sudo systemctl daemon-reload마지막으로 아래 명령어를 실행하여 semaphore 서비스를 시작하고 활성화합니다. 그런 다음 서비스가 실행 중인지 확인합니다.
sudo systemctl enable --now semaphore
sudo systemctl status semaphore아래에서 semaphore 서비스가 실행 중인 것을 확인할 수 있습니다. 기본적으로 포트 3000에서 실행되고 있습니다.

Nginx를 리버스 프록시로 설정
이제 Semaphore가 실행 중이므로 Nginx를 Semaphore 설치의 리버스로 설정합니다. 도메인 이름이 준비되어 있는지 확인합니다(로컬 또는 공개 도메인 이름).
nano 편집기로 새 서버 블록 구성 /etc/nginx/sites-available/semaphore.conf를 생성합니다.
sudo nano /etc/nginx/sites-available/semaphore.conf아래 구성을 삽입하여 포트 3000에서 실행 중인 Ansible Semaphore의 리버스 프록시로 Nginx를 설정합니다. server_name 옵션을 자신의 도메인 이름으로 변경해야 합니다.
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 "";
}
}작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
이제 아래 명령어를 실행하여 서버 블록 파일 semaphore.conf를 활성화하고 Nginx 구문을 확인합니다. 구문이 올바르면 test is successful - syntax is ok라는 출력이 표시됩니다.
sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/
sudo nginx -t마지막으로 아래 systemctl 명령어를 실행하여 Nginx를 재시작하고 변경 사항을 적용합니다.
sudo systemctl restart nginx
HTTPS로 Ansible Semaphore 보안 설정
Ansible Semaphore 설치를 보안하기 위해 Nginx 리버스 프록시 위에 HTTPS를 활성화합니다. Semaphore에 대한 HTTPS를 생성하고 구성하기 위해 Certbot을 사용할 것입니다.
아래 명령어로 certbot 및 python3-certbot-nginx 패키지를 설치합니다.
sudo apt install certbot python3-certbot-nginx -y설치가 완료되면 아래 certbot 명령어를 실행하여 Ansible Semaphore 설치를 위한 SSL/TLS 인증서를 생성합니다. 도메인 및 이메일 주소를 자신의 정보로 변경해야 합니다.
sudo certbot --nginx --agree-tos --no-eff-email --redirect --email [email protected] -d auto.howtoforge.local프로세스가 완료되면 SSL 인증서는 /etc/letsencrypt/live/domain.com 디렉토리에 저장되며, Semaphore 설치는 HTTPS로 보안됩니다.
Ansible Semaphore에 로그인
Semaphore 도메인 이름인 https://auto.howtoforge.local/에 방문합니다. 설치가 성공적이라면 Ansible Semaphore 로그인 페이지가 표시됩니다.
관리자 사용자 이름과 비밀번호를 입력한 후 SIGN IN을 클릭하여 확인합니다.

이제 첫 번째 프로젝트의 이름을 입력하고 Next를 클릭하여 계속 진행합니다.

다음과 같은 Semaphore 대시보드를 확인할 수 있습니다:

결론
축하합니다! Debian 12 서버에 Ansible Semaphore 설치를 완료했습니다. PostgreSQL 서버와 Nginx 웹 서버로 Semaphore를 설치했습니다. 또한 certbot과 Letsencrypt를 통해 Semaphore를 HTTPS로 보안했습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.