웹사이트 검색

Ubuntu 18.04 LTS에서 Nginx 역방향 프록시로 Ansible AWX를 설치하는 방법


이 페이지에서

  1. 1단계 - Docker 및 Ansible 설치
  2. 2단계 - 추가 패키지 설치
  3. 3단계 - AWX 소스 코드 다운로드 및 구성
  4. 4단계 - Ansible AWX 설치
  5. 5단계 - Nginx를 역방향 프록시로 설치 및 구성\n
  6. 6단계 - UFW 방화벽 구성\n
  7. 7단계 - 테스트
  8. 참조

AWX는 Ansible용 사용자 인터페이스, REST API 및 태스크 엔진을 제공하는 오픈 소스 웹 애플리케이션입니다. Ansible Tower의 오픈 소스 버전입니다. AWX를 사용하면 Ansible 플레이북, 인벤토리를 관리하고 웹 인터페이스를 사용하여 실행할 작업을 예약할 수 있습니다.

이 자습서에서는 Ubuntu 서버 18.04에서 AWX를 설치하고 구성하는 방법을 보여줍니다. Nginx와 함께 역방향 프록시로 AWX를 설치하고 HTTPS 보안 연결을 기반으로 구축하려고 했습니다.

전제 조건

  • 우분투 서버 18.04
  • RAM 메모리 +4GB 및 2코어
  • 루트 권한\n

우리가 할 일:

  1. Docker 및 Ansible 설치
  2. 추가 패키지 설치
  3. Ansible AWX 소스 코드 다운로드 및 구성
  4. Ansible AWX 설치
  5. Nginx를 역방향 프록시로 설치 및 구성\n
  6. UFW 방화벽 설정\n
  7. 테스트

1단계 - Docker 및 Ansible 설치

먼저 AWX 설치에 필요한 기본 패키지인 Docker 및 Ansible 자체를 설치합니다. 이러한 패키지를 설치하기 전에 다음 명령을 사용하여 Ubuntu 저장소를 업데이트하십시오.

sudo apt update

이제 Docker와 Ansible을 설치합니다.

sudo apt install ansible -y
sudo apt install docker.io -y

설치가 완료되면 다음 명령어를 사용하여 docker와 ansible을 확인합니다.

docker version
ansible --version

아래는 결과입니다.

2단계 - 추가 패키지 설치

이제 AWX 설치를 위한 추가 패키지를 설치하려고 합니다. python-pip 패키지를 시스템에 설치한 다음 PyPI python 리포지토리에서 docker-compose 및 docker-py를 설치합니다.

아래의 apt 명령을 사용하여 python-pip를 설치합니다.

sudo apt install python-pip -y

설치가 완료되면 아래 pip 명령을 사용하여 PyPI 리포지토리에서 docker-compose 1.9.0 및 docker-py 패키지를 설치합니다.

pip install docker-compose==1.9.0
pip install docker-py

다음으로 서버에 nodejs와 npm을 설치해야 합니다.

다음 명령을 실행합니다.

sudo apt install nodejs npm -y

완료되면 npm을 최신 버전으로 업그레이드합니다.

npm install npm --global

결과적으로 모든 종속성이 시스템에 설치되었습니다. 그리고 AWX를 설치할 준비가 되었습니다.

3단계 - AWX 소스 코드 다운로드 및 구성

이 단계에서는 AWX 소스 코드를 다운로드하고 AWX 설치를 위한 인벤토리 파일을 구성합니다.

git 저장소에서 AWX 소스 코드를 다운로드하고 awx 설치 디렉토리로 이동합니다.

git clone https://github.com/ansible/awx.git
cd awx/installer/

그런 다음 아래의 openssl 명령을 사용하여 awx에 대한 새 비밀 키를 생성합니다.

openssl rand -hex 32

생성된 비밀 키를 메모에 복사합니다.

이제 인벤토리 구성 파일을 편집합니다.

vim inventory

postgres_data_dir을 /var/lib/pgdocker 디렉토리로 변경합니다.

postgres_data_dir=/var/lib/pgdocker

host_port를 8080으로 변경합니다.

host_port=8080

docker compose를 사용하여 awx를 관리할 것이기 때문에 use_docker_compose 줄의 주석을 제거하고 값을 true로 변경합니다.

use_docker_compose=true

이제 docker_compose_dir이 /var/lib/awx 디렉토리에 있는지 확인하십시오.

docker_compose_dir=/var/lib/awx

자신의 암호 자격 증명을 사용하여 pg_password, rabbitmq_password, rabbitmq_erlang_cookie, admin_user 및 admin_password에 대한 자격 증명을 변경합니다.

...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...

그런 다음 위에 생성된 키를 사용하여 awx 구성의 비밀 키를 변경합니다.

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

그런 다음 project_data_dir의 주석을 제거하고 값을 기본값으로 둡니다.

project_data_dir=/var/lib/awx/projects

구성을 저장하고 닫습니다.

아래는 인벤토리 파일을 편집한 것입니다.

grep -v '^#' inventory

인벤토리 구성 파일.

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"

[all:vars]

dockerhub_base=ansible

awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/var/lib/pgdocker
host_port=8080

use_docker_compose=true
docker_compose_dir=/var/lib/awx

pg_username=awx
pg_password=hakaseposgresawx
pg_database=awx
pg_port=5432

rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster

admin_user=hakase
admin_password=hakasepass

create_preload_data=True

secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33

project_data_dir=/var/lib/awx/projects

그 결과 다음 단계에 awx를 설치할 준비가 되었습니다.

4단계 - Ansible AWX 설치

다음 ansible-playbook 명령을 사용하여 awx를 설치합니다.

ansible-playbook -i inventory install.yml

플레이북은 도커 이미지 다운로드 및 새로운 컨테이너 postgresql, memcached, rabbitmq, awx 웹 애플리케이션 및 awx 작업 생성을 포함한 몇 가지 작업을 수행합니다.

그리고 아래는 결과입니다.

다음으로 /var/lib/awx 디렉토리로 이동하면 docker-compose.yml 구성이 표시됩니다. 그런 다음 docker-compose 명령을 사용하여 사용 가능한 모든 도커 컨테이너를 확인합니다.

cd /var/lib/awx
docker-compose ps

그러면 아래와 같이 awx 컨테이너가 표시됩니다.

또한 다음 명령을 사용하여 태스크 서비스의 로그를 확인할 수 있습니다.

docker-compose logs task

5단계 - Nginx를 역방향 프록시로 설치 및 구성

awx를 설치한 후 포트 8080을 실행하는 awx에 대한 리버스 프록시로 Nginx를 설치 및 구성합니다.

다음 apt 명령을 사용하여 Nginx를 설치합니다.

sudo apt install nginx -y

설치가 완료되면 /etc/nginx/sites-available/ 디렉토리로 이동하고 vim 편집기를 사용하여 awx라는 새 가상 호스트 구성을 만듭니다.

cd /etc/nginx/sites-available/
vim awx

이제 아래 구성을 붙여넣습니다.

server {
   listen 80;
   server_name awx.hakase-labs.io;
   add_header Strict-Transport-Security max-age=2592000;
   rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443 ssl http2;
    server_name awx.hakase-labs.io;

    access_log /var/log/nginx/awx.access.log;
    error_log /var/log/nginx/awx.error.log;

    ssl on;
    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;
    ssl_session_timeout 5m;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;

location / {
    proxy_http_version 1.1;
    proxy_set_header Host $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_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass http://10.5.5.20:8080/;
    }
}

도메인 이름과 proxy_pass IP 주소를 자신의 것으로 변경한 다음 저장하고 종료합니다.

이제 awx 가상 호스트를 활성화하고 nginx 구성을 테스트합니다.

ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t

nginx 구성에 오류가 없는지 확인한 다음 nginx 서비스를 다시 시작하십시오.

sudo systemctl restart nginx

이로써 Nginx 설치 및 awx용 리버스 프록시 구성이 완료되었습니다.

6단계 - UFW 방화벽 구성

UFW 방화벽 구성에 SSH, HTTP 및 HTTPS 서비스를 추가합니다.

ufw allow ssh
ufw allow http
ufw allow https

이제 ufw 방화벽 서비스를 시작하고 활성화하십시오.

ufw enable

y를 yes로 입력하면 ufw 방화벽이 구성됩니다.

7단계 - 테스트

웹 브라우저를 열고 주소 표시줄에 awx URL을 입력합니다.

https://awx.hakase-labs.io

그러면 아래와 같이 awx 로그인 페이지가 표시됩니다.

이제 사용자 hakase와 암호 hakasepass를 입력한 다음 로그인 버튼을 클릭합니다.

이제 아래와 같이 awx 관리 대시보드를 얻습니다.

그리고 Nginx 리버스 프록시와 함께 Ansible AWX 설치가 성공적으로 완료되었습니다.

참조