주:
- 이 자습서는 Oracle에서 제공하는 무료 실습 환경에서 사용할 수 있습니다.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료할 때 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Linux Automation Manager Private Automation Hub에서 실행 환경 관리
소개
Private Automation Hub는 고객의 인프라 내에서 로컬로 컬렉션, 실행 환경 이미지 및 기타 선별된 콘텐츠를 관리하기 위한 Oracle Linux Automation Manager 저장소입니다.
이 사용지침서에서는 Private Automation Hub를 설치하고 사용자정의 실행 환경을 컨테이너 레지스트리에 업로드하는 방법을 보여줍니다. 사용자정의된 실행 환경 생성에 대한 자세한 내용은 Builder 유틸리티의 자습서를 참조하십시오.
목표
이 자습서에서는 다음을 수행하는 방법에 대해 알아봅니다.
ansible-vault
를 사용하여 암호 변수 보안- 변수를 사용하여 Private Automation Hub 설치
- Private Automation Hub 레지스트리에 사용자정의 실행 환경 업로드
필요 조건
- Oracle Linux를 실행하는 두 개의 시스템
- Private Automation Hub 설치용
- Builder 유틸리티를 실행하고 Private Automation Hub에 대한 클라이언트 역할을 수행하는 또 다른 기능
Oracle Linux 배치
주: 고유 테넌시에서 실행 중인 경우 linux-virt-labs
GitHub 프로젝트 README.md를 읽고 실습 환경을 배치하기 전에 필요 조건을 완료하십시오.
-
Luna Desktop에서 터미널을 엽니다.
-
linux-virt-labs
GitHub 프로젝트를 복제합니다.git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
작업 디렉토리로 변경합니다.
cd linux-virt-labs/olam
-
필요한 모음을 설치합니다.
ansible-galaxy collection install -r requirements.yml
-
Oracle Linux 인스턴스 구성을 업데이트합니다.
cat << EOF | tee instances.yml > /dev/null compute_instances: 1: instance_name: "devops-node" type: "server" 2: instance_name: "ol-pah" type: "server" passwordless_ssh: true use_olam_builder: true use_devops_vnc: true add_pah_ports: true olam_type: none EOF
-
재고 파일을 생성합니다.
cat << EOF | tee hosts > /dev/null localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6 EOF
-
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 주소를 인쇄합니다.
Private Automation Hub 패키지 설치
-
터미널을 열고 SSH를 통해 ol-pah instance에 연결합니다.
ssh oracle@<ip_address_of_instance>
-
Oracle Linux Automation Manager 저장소를 설치합니다.
Oracle Linux 8:
sudo dnf install -y oraclelinux-automation-manager-release-el8
Oracle Linux 9:
sudo dnf install -y oraclelinux-automation-manager-release-el9
-
Private Automation Hub 패키지를 설치합니다.
sudo dnf install -y ol-private-automation-hub-installer
이 명령은 Private Automation Hub 설치 플레이북 및 역할,
ansible-core
,python3.11
및 기타 패키지 종속성을 설치합니다.
Private Automation Hub 설치
Private Automation Hub를 설치할 때는 Private Automation Hub admin
수퍼 유저 계정 및 해당 백엔드 데이터베이스에 대한 암호를 설정해야 합니다. 이러한 항목을 열린 플레이북에 전달하는 대신 ansible-vault
를 사용하여 해당 단계를 보다 안전하게 수행해 보겠습니다.
Oracle Linux Automation Engine과 함께 제공되는 ansible-vault
유틸리티는 텍스트 파일, 변수, YAML 플레이북 등 구조화된 데이터 파일의 암호화 및 암호 해독을 지원합니다.
우리는 우리의 목적을 위해 두 개의 암호를 포함하는 변수 파일을 암호화 할 것입니다.
-
Private Automation Hub 플레이북을 작업 디렉토리에 복사합니다.
cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node
-
작업 디렉토리로 변경합니다.
cd ~/single_node
-
재고 파일을 생성합니다.
이 플레이북의 인벤토리 파일에는 플레이북이 Private Automation Hub를 설치할 호스트 이름 및 SSH 사용자 이름이 필요합니다. 인벤토리 파일을 INI 또는 YAML 형식으로 정의합니다. 설치 플레이북 내의 샘플 인벤토리
hosts.singlenode.example
는 YAML을 사용하므로 여기서 INI 형식을 사용하여 대체 옵션을 보여드리겠습니다.tee hosts > /dev/null <<EOF [hub] ol-pah ansible_host=ol-pah ansible_user=oracle EOF
hub
를 ansible_host에 대한 별칭으로 사용하는 샘플과 달리 이 INI 인벤토리 파일은hub
를 그룹 이름으로 사용합니다. 그룹을 사용하면 호스트 간에 상위-하위 관계를 생성하고 하나 이상의 범주로 분류하여 작업을 실행하거나 변수를 지정할 수 있습니다. -
암호 변수를 포함하는 Vault를 생성합니다.
ansible-vault create vault_passwords.yml
명령을 실행하면 Vault 암호를 작성하라는 메시지가 표시됩니다.
ansible-vault
유틸리티는 이 암호를 사용하여 Vault의 컨텐츠를 해독하고 플레이북 내에서 이러한 컨텐츠에 액세스합니다. 암호는 임의의 문자 조합일 수 있지만 복구할 수 없으므로 기억하십시오.암호를 입력하고 확인하면 유틸리티가 기본 편집기에서
vault_passwords.yml
파일을 엽니다. 무료 실습 환경의 경우 편집기는vi
입니다.i
를 입력하여INSERT
모드를 입력하고 이러한 샘플 Private Automation Hub 비밀번호 변수를 붙여 넣습니다.참고: Private Automation Hub를 설치하고 수퍼유저 및 데이터베이스 비밀번호를 설정할 때 플레이북에서 사용하는 변수입니다.
--- olpah_admin_password: password olpah_db_password: password
ESC
,:wq!
,ENTER
를 차례로 입력하여 파일을 닫고 저장합니다. -
Vault의 내용을 확인합니다.
ansible-vault view vault_passwords.yml
프롬프트에 Vault 암호를 입력하고
ansible-vault
는 터미널에 Vault의 컨텐츠를 표시합니다. -
Private Automation Hub 플레이북을 실행합니다.
ansible-playbook single-node-install.yml -i hosts -e "@vault_passwords.yml" --ask-vault-pass
-i
는 인벤토리 파일을 정의합니다.-e
는 모든 런타임 변수를key=value
쌍 또는 변수 파일로 정의합니다.- 저장소 비밀번호를 묻는
--ask-vault-pass
프롬프트
업스트림 설명서에서 검토할 수 있는 저장소 비밀번호를 제공하는 대체 방법이 있습니다.
참고: Private Automation Hub 설치는 10~20분 정도 걸립니다. 설치 중에 모든 작업이 완료될 때까지 플레이북의 진행률이 터미널에서 스크롤됩니다.
DevOps 인스턴스로 VNC 세션 열기
VNC 세션을 사용하면 무료 실습 환경 내에서 호스트 이름 또는 FQDN(정규화된 도메인 이름)을 사용하여 Private Automation Hub 웹 UI에 연결할 수 있습니다. Django의 내장된 보호 기능이 교차 사이트 요청 위조(CSRF) 공격으로부터 웹 UI를 보호하므로 호스트 이름이나 FQDN을 사용해야 합니다.
-
기존 SSH 세션을 종료합니다.
exit
-
새 터미널을 열고 SSH를 통해 devops-node 인스턴스에 연결합니다.
-L
옵션은 로컬 전달을 사용으로 설정합니다. 그러면 로컬 포트가 열리고 SSH 터널을 통해 원격 VNC 서버에 연결됩니다.ssh -L 5914:localhost:5901 oracle@<ip_address_of_instance>
-
Luna Desktop으로 전환합니다.
-
애플리케이션 메뉴, 인터넷, TigerVNC 뷰어 순으로 눌러 TigerVNC 뷰어를 엽니다.
-
VNC Server 텍스트 상자에
localhost:5914
을 입력하고 Connect 버튼을 눌러 배치된 서버의 GUI 환경에 로그온합니다. -
oracle
사용자의 암호로 oracle을 입력하고 OK 버튼을 누릅니다. -
서버의 GUI 데스크탑이 처음 로그인 설정과 함께 표시됩니다.
-
Next 버튼을 세 번 누른 다음 Skip 버튼, Start Using Oracle Linux Server 버튼을 차례로 누릅니다. 마지막으로 시작하기 창을 닫거나 최소화합니다.
Private Automation Hub에 연결
-
VNC 세션 내에서 웹 브라우저를 열고 URL을 입력합니다.
https://ol-pah
주: 사용된 브라우저를 기반으로 보안 경고를 승인합니다. Chrome의 경우
Advanced
단추,Proceed to localhost (unsafe)
링크를 차례로 누릅니다. -
Private Automation Hub 웹 UI에 로그인합니다.
사용자 이름
admin
및 암호password
를 사용합니다. 이 비밀번호는 런타임 변수 파일에서olpah_admin_password
에 대해 설정한 값입니다. -
로그인 성공 후 웹 UI가 표시됩니다.
웹 UI를 사용하여 실행 환경 추가
Private Automation Hub에서 관리하는 항목 중 하나는 실행 환경입니다. 이 기능을 사용하면 Private Automation Hub가 컨테이너 이미지의 저장소 역할을 하여 관리자가 Podman 및 웹 UI를 사용하여 해당 이미지와 상호 작용할 수 있습니다.
-
탐색 메뉴의 실행 환경 아래에 있는 웹 UI에서 원격 레지스트리를 누릅니다.
-
Add remote registry(원격 레지스트리 추가) 버튼을 누릅니다.
-
특정 필드에 다음 값을 입력합니다.
- 이름:
Quay Upstream Registry
- URL:
https://quay.io
- 이름:
-
저장 단추를 누릅니다.
새로 만든 원격 레지스트리가 원격 레지스트리 패널에 나타납니다.
-
탐색 메뉴에서 실행 환경 아래의 실행 환경을 누릅니다.
-
실행 환경 추가 단추를 누릅니다.
웹 UI에 실행 환경 추가 대화상자가 표시됩니다. 이 대화상자를 통해 업스트림 또는 기타 레지스트리에서 컨테이너 이미지를 가져올 수 있습니다.
-
특정 필드에서 다음 값을 입력하거나 선택합니다.
- 이름:
upstream/awx-ee
- 업스트림 이름:
ansible/awx-ee
- 레지스트리: Quay Upstream Registry
- 포함할 태그 추가:
latest
를 입력한 다음ENTER
를 입력합니다.
- 이름:
-
저장 단추를 누릅니다.
새로 생성된 실행 환경이 실행 환경 패널에 나타납니다.
-
원격 레지스트리에서 upstream/awx-ee 실행 환경을 동기화합니다.
-
upstream/awx-ee 항목 오른쪽에 있는 세로 점 메뉴를 누릅니다.
-
레지스트리에서 동기화를 선택합니다.
동기화가 시작되었음을 알리는 팝업 대화상자가 나타납니다.
-
이 작업의 상태를 보려면 팝업 대화상자에서 세부정보 페이지 링크를 누릅니다.
-
이 작업에는 완료됨 아이콘이 표시됩니다.
-
탐색 메뉴에서 실행 환경 아래의 실행 환경을 누릅니다.
-
실행 환경 패널에서 업스트림/익스피어 링크를 누릅니다.
이 링크는 세부정보 탭 아래의 Private Automation Hub에서 이 이미지를 가져오는 지침을 표시합니다.
-
이미지 탭을 누릅니다.
이 패널에는 tag, size 및 sha256 digest를 포함하여 이미지에 대한 세부 정보가 표시됩니다.
-
Podman을 사용하여 실행 환경 푸시
-
터미널을 열고 SSH를 통해 devops-node 인스턴스에 연결합니다.
ssh oracle@<ip_address_of_instance>
이 인스턴스에는 Builder 유틸리티 설치 및 사전 구축된 사용자정의 실행 환경이 포함되어 있습니다. 이러한 작업 수행에 대한 자세한 내용은 Oracle Linux Automation Manager Builder Utility를 사용하여 사용자 정의 실행 환경 구축을 참조하십시오.
-
프로젝트의 작업 디렉토리로 변경합니다.
cd ~/my_custom_ee_project
이 디렉토리는 Podman이 사용자 정의 실행 환경 이미지를 만드는 데 사용하는 Builder 유틸리티의 데이터 파일을 포함합니다.
-
기존 로컬 이미지를 나열합니다.
podman images
출력에는 사용자 정의 이미지와 Oracle Linux Automation Manager의 기본
olam-ee
및olam-builder
이미지가 표시됩니다. -
Private Automation Hub에 로그인합니다.
podman login -u admin https://ol-pah.$(hostname -d) --tls-verify=0
-u
은 컨테이너 레지스트리에 액세스할 수 있는 권한을 가진 사용자입니다.ol-pah.$(hostname -d)
은 컨테이너 레지스트리 FQDN입니다.--tls-verify=0
는 무료 실습 환경에서 자체 서명된 인증서를 사용하므로 TLS 인증서 확인을 해제합니다.
이 명령은
Password:
를 입력하라는 메시지를 표시합니다. Private Automation Hubadmin
사용자의 로그인 인증서와 일치하는 비밀번호를 입력합니다. -
로컬 사용자 정의 이미지에 태그를 지정합니다.
이미지를 Private Automation Hub 레지스트리에 푸시하기 전에 로컬 이미지를 사용하여 필요한 저장소 구조와 태그를 생성합니다.
podman tag localhost/my_custom_ee ol-pah.$(hostname -d)/my_first_olam_ee_image
-
태그가 지정된 새 이미지가 존재하는지 확인합니다.
podman images
출력 예:
[oracle@devops-node my_custom_ee_project]$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/my_custom_ee latest fbc43634b168 5 hours ago 2.29 GB ol-pah.lv.vcn5ef1c2b6.oraclevcn.com/my_first_olam_ee_image latest fbc43634b168 5 hours ago 2.29 GB <none> <none> 92aa94db3699 5 hours ago 1.4 GB <none> <none> cc087fbfa018 5 hours ago 1.45 GB container-registry.oracle.com/oracle_linux_automation_manager/olam-ee latest 368657c8376d 5 weeks ago 1.25 GB container-registry.oracle.com/oracle_linux_automation_manager/olam-builder latest 5e98580f7956 5 weeks ago 546 MB
-
Private Automation Hub에 사용자정의 이미지를 업로드합니다.
주:
<IMAGE ID>
를podman images
출력에서my_first_olam_ee_image
의 실제 이미지 ID로 바꿉니다.podman push --tls-verify=0 <IMAGE ID> ol-pah.$(hostname -d)/my_first_olam_ee_image:latest
-
웹 UI에서 업로드를 확인합니다.
-
Private Automation Hub 웹 UI를 포함하는 브라우저로 전환합니다.
-
실행 환경으로 이동합니다.
-
새 my_first_olam_ee_image를 확인합니다.
-
다음 단계
웹 UI의 출력은 작업 중인 Private Automation Hub가 있으며 커스텀 이미지를 업로드하고 저장할 수 있는 기능을 확인합니다. Oracle Linux Automation Manager를 사용하여 기술을 연습하는 다른 자습서를 확인하십시오.
관련 링크
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Manage Execution Environments in Oracle Linux Automation Manager Private Automation Hub
G39667-01
Copyright ©2023, Oracle and/or its affiliates.