주:

Oracle Linux에 Oracle Linux Automation Manager 설치

소개

Oracle Linux Automation Manager는 원격 호스트 인벤토리에 대해 Oracle Linux Automation Engine 플레이북을 예약하고 실행하기 위한 작업 엔진 및 웹 기반 GUI(그래픽 사용자 인터페이스)입니다. 이 도구 모음을 통해 관리자는 IT 인프라를 손쉽게 관리하고 예측 가능한 방식으로 반복 작업을 완료하여 일반적인 수동 기반 관리 문제를 방지할 수 있습니다.

Oracle Linux Automation Engine은 코드 기반 Infrastructure as Code(IaC) YAML 정의 파일인 playbooks를 사용하여 관리 작업을 관리하고 실행하는 도구입니다. 이러한 플레이북에는 소프트웨어 배포, 시스템 구성, 업그레이드 및 업데이트 조정과 같은 지침 작업이 포함되어 있습니다.

목표

이 자습서에서는 다음을 수행하는 방법을 배웁니다.

필요 조건

Oracle Linux 배포

주: 고유 테넌시에서 실행 중인 경우 랩 환경을 배치하기 전에 linux-virt-labs GitHub 프로젝트 README.md을 읽고 필요 조건을 완료하십시오.

  1. Luna Desktop에서 터미널을 엽니다.

  2. linux-virt-labs GitHub 프로젝트를 복제합니다.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 작업 디렉토리로 변경합니다.

    cd linux-virt-labs/olam
    
  4. 필요한 모음을 설치합니다.

    ansible-galaxy collection install -r requirements.yml
    
  5. Oracle Linux 인스턴스 구성을 업데이트합니다.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
    olam_type: none
    EOF
    
  6. 재고 파일을 생성합니다.

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. lab 환경을 배치합니다.

    ansible-playbook create_instance.yml -i hosts -e "@instances.yml"
    

    무료 실습 환경에서는 Python용 Oracle Cloud Infrastructure SDK에 대한 RPM 패키지를 설치하므로 localhost에 대한 추가 변수 ansible_python_interpreter가 필요합니다. 이 패키지 설치 위치는 사용 중인 Oracle Linux 버전을 기반으로 하는 시스템의 기본 Python 모듈 아래에 있습니다. 인벤토리 변수를 사용하면 localhost 이외의 호스트에서 실행되는 재생에 영향을 주지 않습니다.

    기본 배치 구성은 AMD CPU를 사용합니다. 명령행에서 새 쉐이프 변수 정의를 전달하여 인스턴스의 쉐이프를 변경할 수 있습니다.

    예: -e instance_shape="VM.Standard3.Flex"

    마찬가지로 Oracle Linux 이미지의 기본 버전은 `default_vars.yml 파일에 정의된 os_version 변수를 사용합니다. 명령줄에서 Oracle Linux 주 버전을 전달하여 이 값을 수정할 수 있습니다.

    예: -e os_version="9"

    중요: 플레이북이 성공적으로 실행될 때까지 기다렸다가 일시 중지 작업에 도달합니다. 플레이북의 이 단계에서 Oracle Linux 설치가 완료되고 인스턴스가 준비됩니다. 이전 플레이에서 배포하는 노드의 공용 및 전용 IP 주소를 인쇄합니다.

Oracle Linux DNF 저장소 사용 및 방화벽 규칙 설정

Oracle Linux Automation Manager를 설치하기 전에 필요한 yum 저장소 및 방화벽 규칙을 사용으로 설정합니다.

  1. 터미널을 열고 ssh를 통해 olam-node 노드에 연결합니다.

    ssh oracle@<ip_address_of_instance>
    
  2. Oracle Linux Automation Manager 저장소를 설치합니다.

    Oracle Linux 8:

    sudo dnf -y install oraclelinux-automation-manager-release-el8
    

    Oracle Linux 9:

    sudo dnf -y install oraclelinux-automation-manager-release-el9
    

    이 명령은 최신 Oracle Linux Automation Manager 저장소를 제품의 패키지 설치에 대한 기본값으로 사용으로 설정합니다.

  3. 방화벽 규칙에 HTTP/HTTPS 서비스를 추가합니다.

    sudo firewall-cmd --add-service=https --permanent
    sudo firewall-cmd --reload
    

로컬 PostgreSQL 데이터베이스 설치

  1. 모듈 스트림을 사용으로 설정합니다.

    sudo dnf module reset postgresql
    sudo dnf -y module enable postgresql:16
    
  2. 데이터베이스를 설치합니다.

    sudo dnf -y install postgresql-server
    
  3. 데이터베이스를 초기화합니다.

    sudo postgresql-setup --initdb
    
  4. 암호 저장 방식을 scram-sha-256으로 전환합니다.

    sudo sed -i "s/#password_encryption.*/password_encryption = scram-sha-256/" /var/lib/pgsql/data/postgresql.conf
    
  5. 데이터베이스를 활성화하고 시작합니다.

    sudo systemctl enable --now postgresql
    
  6. 데이터베이스 유저 계정을 생성합니다.

    중요: 이 무료 실습 환경에서는 프롬프트에 암호 password를 사용합니다. 이 암호는 보안되지 않으며 이 환경에서 데모 목적으로만 이 암호를 사용합니다.

    sudo su - postgres -c "createuser -S -P awx"
    
  7. 데이터베이스를 생성합니다.

    sudo su - postgres -c "createdb -O awx awx"
    
  8. host-based authentication 파일을 업데이트합니다.

    echo "host  all  all 0.0.0.0/0 scram-sha-256" | sudo tee -a /var/lib/pgsql/data/pg_hba.conf > /dev/null
    
  9. 데이터베이스 리스너의 IP 주소를 업데이트합니다.

    sudo sed -i "/^#port = 5432/i listen_addresses = '"$(hostname -i)"'" /var/lib/pgsql/data/postgresql.conf
    
  10. 데이터베이스 메모리 요구 사항을 갱신합니다.

    이러한 계산에서는 시스템의 총 메모리(MB)를 활용하고 PostgreSQL 구성 파일의 기본값을 바꿉니다.

    export TOTAL_MEMORY="$(free --mega | awk 'FNR == 2 {print $2}')"
    sudo sed -i 's/max_connections = 100/max_connections = 1024/g' /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^shared_buffers =/c\shared_buffers = $( echo "($TOTAL_MEMORY*0.3)/1" | bc )" /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^#work_mem =/c\work_mem = $( echo "($TOTAL_MEMORY*0.03)/1" | bc )" /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^#maintenance_work_mem =/c\maintenance_work_mem = $( echo "($TOTAL_MEMORY*0.04)/1" | bc )MB" /var/lib/pgsql/data/postgresql.conf
    
  11. 데이터베이스를 재시작합니다.

    sudo systemctl restart postgresql
    

Oracle Linux Automation Manager 설치 및 구성

  1. Oracle Linux Automation Manager 패키지 및 종속성을 설치합니다.

    sudo dnf -y install ol-automation-manager
    
  2. Redis 구성 파일을 업데이트합니다.

    Oracle Linux 8:

    sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis.conf
    

    Oracle Linux 9:

    sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis/redis.conf
    
  3. 사용자 정의 설정 파일에 CLUSTER_HOST_ID를 추가합니다.

    cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null
    CLUSTER_HOST_ID = '$(hostname -i)'
    EOF
    

    주: 출력에 공백이 있어서 IPv6가 사용으로 설정된 시스템에서는 $(hostname -i)를 사용할 수 없습니다. 대신 $(hostname -f)를 사용하거나 공백 없이 다른 문자열을 사용할 수 있는 시스템의 호스트 이름을 사용하십시오.

  4. 사용자정의 설정 파일에 대한 권한을 업데이트합니다.

    sudo chown awx.awx /etc/tower/conf.d/olam.py
    sudo chmod 0640 /etc/tower/conf.d/olam.py
    
  5. 사용자 정의 구성 파일에 데이터베이스 설정을 추가합니다.

    cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null
    
    DATABASES = {
        'default': {
            'ATOMIC_REQUESTS': True,
            'ENGINE': 'awx.main.db.profiled_pg',
            'NAME': 'awx',
            'USER': 'awx',
            'PASSWORD': 'password',
            'HOST': '$(hostname -i)',
            'PORT': '5432',
        }
    }
    EOF
    
  1. 링거를 사용으로 설정합니다.

    Oracle Linux 9:

    sudo loginctl enable-linger awx
    

    이렇게 하면 헤드리스 시스템에서 실행할 때 다음 메시지가 해결됩니다.

    WARN[0000] cgroupv2 관리자가 systemd로 설정되었지만 사용 가능한 systemd 사용자 세션이 없습니다. WARN[0000] systemd를 사용하려면 사용자 세션 WARN[0000]을 사용하여 로그인해야 할 수 있습니다. 또는 loginctl enable-linger 986(루트로 표시 가능) WARN[0000] –cgroup-manager=cgroupfs로 폴백할 수 있습니다.
    경고[0000] cgroupv2 관리자가 systemd로 설정되었지만 사용 가능한 systemd 사용자 세션이 없습니다. 경고[0000] systemd를 사용하려면 사용자 세션 WARN[0000]을 사용하여 로그인해야 할 수 있습니다. 또는 loginctl enable-linger 986(루트로 가능) WARN[0000] –cgroup-manager=cgroupfs로 폴백하는 방법을 사용하여 링거링을 사용으로 설정할 수 있습니다.

  2. Oracle Linux Automation Manager 컨테이너 이미지를 풀링합니다.

    Oracle Linux 8:

    sudo su -l awx -s /bin/bash
    
    podman system migrate
    
    podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol8
    

    Oracle Linux 9:

    sudo su -l awx -s /bin/bash
    
    podman system migrate
    
    podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol9
    
  3. Oracle Linux Automation Manager 스키마 및 관리 사용자 계정을 생성합니다.

    awx-manage migrate
    awx-manage createsuperuser --username admin --email admin@example.com
    

    주: 이전 예에서 admin@example.com은 관리 사용자의 전자메일 주소 예입니다.

  4. 관리 사용자의 암호를 입력하고 확인합니다.

  5. awx user shell을 종료합니다.

    exit
    
  6. NGINX용 SSL 인증서를 생성합니다.

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/tower/tower.key -out /etc/tower/tower.crt
    

    요청된 정보를 입력하거나 ENTER 키를 누르십시오.

  7. 기본 NGINX 구성을 교체합니다.

    cat << EOF | sudo tee /etc/nginx/nginx.conf > /dev/null
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    }
    EOF
    
  8. Receptor 구성 파일을 업데이트합니다.

    cat << EOF | sudo tee /etc/receptor/receptor.conf > /dev/null
    ---
    - node:
        id: $(hostname -i)
    
    - log-level: debug
    
    - tcp-listener:
        port: 27199
    
    - control-service:
        service: control
        filename: /var/run/receptor/receptor.sock
    
    - work-command:
        worktype: local
        command: /var/lib/ol-automation-manager/venv/awx/bin/ansible-runner
        params: worker
        allowruntimeparams: true
        verifysignature: false
    EOF
    
  9. 인스턴스를 프로비저닝하고 실행 환경을 등록합니다.

    sudo su -l awx -s /bin/bash
    
    awx-manage provision_instance --hostname=$(hostname -i) --node_type=hybrid
    
    awx-manage register_default_execution_environments
    
    awx-manage register_queue --queuename=default --hostnames=$(hostname -i)
    
    awx-manage register_queue --queuename=controlplane --hostnames=$(hostname -i)
    
    awx-manage create_preload_data
    
    exit
    
  10. 서비스를 시작합니다.

    sudo systemctl enable --now ol-automation-manager.service
    
  11. 서버에서 접속을 해제합니다.

    exit
    

설치 확인

  1. 동일한 터미널 창을 사용하여 SSH 터널을 구성합니다.

    ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
    

    주: 이전 예에서 <ip_address_of_instance>은 Oracle Linux Automation Manager를 실행하는 시스템의 호스트 이름 또는 IP 주소입니다. 호스트 이름을 사용하는 경우 호스트를 분석할 수 있어야 합니다.

  2. 웹 브라우저를 열고 URL을 입력합니다.

    https://localhost:8444
    

    주: 사용된 브라우저를 기반으로 보안 경고를 승인합니다. Chrome의 경우 Advanced 단추를 누른 다음 Proceed to localhost (unsafe) 링크를 누릅니다.

  3. USERNAME admin 및 설정 중 생성된 비밀번호를 사용하여 Oracle Linux Automation Manager에 로그인합니다.

다음 단계

Oracle Linux Automation Manager가 설치된 상태에서 웹 사용자 인터페이스와 다양한 제품 기능을 탐색하여 인프라를 자동화할 수 있습니다. 지식을 넓히고 아이디어를 얻으려면 Oracle Linux Training Station에 대한 추가 교육을 확인하십시오.

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.