주:
- 이 자습서는 Oracle에서 제공하는 무료 실습 환경에서 사용할 수 있습니다.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Linux Automation Manager에서 OCI Ansible Collection 사용
소개
Oracle Cloud Infrastructure(OCI) Ansible Collection은 Oracle Linux Automation Engine 또는 Oracle Linux Automation Manager를 사용하여 Oracle Cloud에서 리소스를 쉽게 프로비저닝하고 관리할 수 있는 방법을 제공합니다.
목표
이 자습서에서는 다음을 수행하는 방법을 배웁니다.
- OCI Ansible Collection을 사용하는 플레이북 생성
- Ansible Galaxy에 대한 인증서 구성
- Oracle Cloud Infrastructure 인증서 추가
- 작업 템플리트 생성
- 작업을 실행합니다
필요 조건
- Oracle Linux Automation Manager가 설치된 시스템
- Git 저장소에 액세스
- OCI(Oracle Cloud Infrastructure) 계정
- 컴파트먼트의 리소스 작업을 수행할 수 있는 권한이 있는 OCI 계정의 사용자
- 해당 계정의 인증서 및 OCID 정보에 액세스
Oracle Linux Automation Manager 배포
주: 고유 테넌시에서 실행 중인 경우 랩 환경을 배치하기 전에 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: "olam-node" type: "control" 2: instance_name: "git-server" type: "server" use_git: true olam_type: single 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 주소를 인쇄합니다.
플레이북 만들기
-
새 터미널 window를 엽니다.
-
변수를 원격 git-server 인스턴스로 설정합니다.
export REMOTE=<ip_address_of_instance>
-
프로젝트 디렉토리를 만듭니다.
mkdir ~/myproject
-
요구 사항 파일을 만듭니다.
Oracle Linux Automation Engine은 요구사항 파일을 사용하여 런타임 시 필요한 모음 또는 역할을 프로젝트로 가져옵니다.
cat << EOF > ~/myproject/requirements.yml --- collections: - name: oracle.oci - name: community.general EOF
주: Oracle Linux Automation Engine < 2.13.9 버전의 경우 모음 GitHub 저장소에서 직접 컬렉션을 가져오도록 요구 사항 파일을 구성할 수 있습니다.
cat << EOF > ~/myproject/requirements.yml --- collections: - name: https://github.com/oracle/oci-ansible-collection.git type: git version: master - name: https://github.com/ansible-collections/community.general.git type: git version: main EOF
-
Playbook 만들기
이 플레이북은 Oracle Cloud Infrastructure 테넌시에 대한 오브젝트 스토리지 네임스페이스를 질의합니다. 나중에 Oracle Linux Automation Manager Web UI에서 테넌시 세부정보를 구성합니다.
cat << EOF > ~/myproject/get_namespace.yml --- - name: Get namespace name hosts: localhost tasks: - name: get namespace oracle.oci.oci_object_storage_namespace_facts: register: output - name: print namespace ansible.builtin.debug: msg: "" EOF
소스 제어에 프로젝트 추가
-
프로젝트의 작업 디렉토리를 Git 저장소로 초기화합니다.
저장소를 초기화하기 전에 몇 가지 Git 초기 구성 단계를 수행해야 합니다.
-
프로젝트를 초기화할 때 사용되는 기본 분기 이름을 설정합니다.
git config --global init.defaultBranch main
-
ID를 설정합니다.
이메일과 이름은 이 튜토리얼의 예입니다. 프로젝트에서 작업할 때 이메일 주소와 이름을 사용하십시오. git는 각 커밋에 이 정보를 포함할 수 없습니다.
git config --global user.email johndoe@example.com git config --global user.name "John Doe"
-
프로젝트의 작업 디렉토리로 변경합니다.
cd ~/myproject
-
디렉토리를 로컬 Git 저장소로 초기화합니다.
git init
이 명령은 빈 Git 저장소를 초기화한 것을 반환합니다.
-
-
작업 디렉토리 및 프로젝트 스테이지 영역의 상태를 확인합니다.
git status
로컬 저장소의 상태는 추적되지 않은 두 개의 파일(get_namespace.yml 및 requirements.yml)을 나타냅니다.
-
스테이지 영역에서 새 파일을 추가하고 추적합니다.
git add --all
--all
옵션은 추적되지 않은 파일과 변경된 파일을 모두 스테이징 영역에 추가합니다. -
현재 스테이지 영역에 있는 변경 사항을 커밋합니다.
git commit -m 'initial commit'
-m
옵션을 사용하면 커밋된 변경사항에 설명을 추가할 수 있습니다. -
원격 Git 저장소를 생성하고 초기화합니다.
원격 저장소는 모든 프로젝트 제공자가 사용하고 GitHub 또는 자체 호스트된 서버와 같은 코드 호스팅 서비스에 저장되는 공유 저장소입니다.
ssh git@$REMOTE "git init -b main --bare /git-server/repos/myproject.git"
-b
옵션은 main이라는 분기를 사용하여 원격 저장소를 초기화합니다. -
yes
를 입력하여 ECDSA 키 지문을 적용합니다. -
새 원격 저장소 접속 레코드를 추가합니다.
로컬 저장소에 원격 접속을 추가하면 Git 명령에서 이름이 지정된 바로가기로 사용할 수 있습니다.
git remote add origin git@$REMOTE:/git-server/repos/myproject.git
콜론 뒤의 경로는 원격 Git 서버에서 저장소의 디렉토리 위치입니다.
-
새로 추가된 연결 레코드를 확인합니다.
git remote -v
출력에는
git fetch
및git push
명령에 대한 원격 Git 저장소 위치를 가리키는 접속 레코드 origin이 표시됩니다. -
로컬 저장소 변경 사항을 원격 저장소로 푸시합니다.
git push origin main
이제 Oracle Linux Automation Manager 프로젝트 내에서 myproject 소스를 사용할 수 있습니다.
Ansible Galaxy 인증서 생성
이러한 인증서를 사용하면 Oracle Linux Automation Manager가 공용 Ansible Galaxy Hub에서 OCI Ansible Collection을 가져올 수 있습니다.
-
새 터미널 창을 열고 olam-node 인스턴스에 대한 SSH 터널을 구성합니다.
ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
-
웹 브라우저를 열고 URL을 입력합니다.
https://localhost:8444
주: 사용된 브라우저를 기반으로 보안 경고를 승인합니다. Chrome 브라우저의 경우 고급 버튼을 누른 다음 로컬 호스트로 진행(안전하지 않음) 링크를 누릅니다.
-
Oracle Linux Automation Manager 웹 UI에 로그인합니다. 자동화된 배치 중 생성된 Username
admin
및 Passwordadmin
을 사용합니다. -
로그인 성공 후 웹 UI가 표시됩니다.
-
탐색 메뉴의 리소스 섹션 아래에서 인증서를 누릅니다.
-
추가 단추를 누릅니다.
-
특정 필드에서 다음 값을 입력하거나 선택합니다.
검색 또는 값 목록이 있는 필드의 경우 요청된 값 입력을 시작한 다음 목록에서 선택할 수 있습니다.
- 이름:
My Ansible Galaxy
- 조직:
Default
- 인증서 유형: Ansible Galaxy/Automation Hub API 토큰
Oracle Linux Automation Manager는 Ansible Galaxy 자격 증명을 사용하여
ansible-galaxy
명령을 사용하여 역할 및 컬렉션을 쉽게 다운로드할 수 있도록 합니다.- 갤럭시 서버 URL:
https://galaxy.ansible.com
- 이름:
-
항목을 검토하고 Save 버튼을 누릅니다.
-
탐색 메뉴의 액세스 섹션 아래에 있는 조직을 누릅니다.
조직 내에서 Ansible Galaxy 자격 증명을 지정하면 git 프로젝트 내에서 Oracle Linux Infrastructure Ansible Collection을 다운로드할 수 있습니다.
-
기본값 조직을 누르고 편집 버튼을 누릅니다.
-
갤럭시 자격 증명 필드에서 My Ansible Galaxy 자격 증명을 선택하고 Select 버튼을 누릅니다.
-
검토 후 저장 버튼을 누릅니다.
OCI 인증서 생성
OCI 인증서는 특정 OCI 테넌시에 대한 Oracle Linux Automation Manager 정보를 제공합니다.
-
탐색 메뉴에서 인증서를 누릅니다.
-
추가 단추를 누릅니다.
-
특정 필드에서 다음 값을 입력하거나 선택합니다.
- 이름:
My OCI Credentials
- 조직:
Default
- 인증서 유형: Oracle Cloud Infrastructure
페이지가 새로 고쳐지고 OCI 구성 정보를 요청합니다.
- 이름:
-
새 터미널 window를 엽니다.
-
OCI 구성 파일의 내용을 표시합니다.
cat ~/.oci/config
-
터미널에 표시된 값을 사용하여 Oracle Linux Automation Manager Web UI에서 OCI 인증서의 특정 필드와 일치시킵니다.
각 필드 옆에 있는
아이콘을 사용하여 붙여넣기 값을 표시합니다.
-
OCI 사용자의 API 프라이빗 키 콘텐츠를 가져옵니다.
무료 실습 환경에서는
cat ~/.oci/oci.key
를 실행하여 이 정보를 가져온 다음 BEGIN 및 END 행을 포함한 전체 출력을 복사할 수 있습니다. -
Oracle Linux Automation Manager 웹 UI 내의 개인 사용자 키 필드에 키를 붙여 넣습니다.
-
검토 후 저장 버튼을 누릅니다.
나중에 이러한 값을 편집해야 하는 경우 웹 UI에서 암호화된 상태로 나타납니다. 따라서 변경하려면 특정 필드 옆에 있는 바꾸기 아이콘을 누르고 필드에 대한 새 값을 추가합니다. 필요에 따라 반복한 다음 변경이 완료되면 Save 버튼을 누릅니다.
인벤토리 생성
-
탐색 메뉴에서 Inventories를 누릅니다.
-
추가 단추를 누르고 값 드롭다운 목록에서 인벤토리 추가를 선택합니다.
-
특정 필드에서 다음 값을 입력하거나 선택합니다.
- 이름:
My Local Inventory
- 인스턴스 그룹: 제어판
Oracle Cloud Infrastructure Ansible Collection은 Oracle Linux Automation Engine을 사용하여 OCI 테넌시와 상호 작용할 때 localhost 네트워크 연결을 사용합니다.
- 이름:
-
검토 후 저장 버튼을 누릅니다.
소스 제어 인증서 추가
-
탐색 메뉴에서 인증서를 누릅니다.
-
추가 단추를 누릅니다.
-
특정 필드에서 다음 값을 입력하거나 선택합니다.
- 이름:
Git Server
- 인증서 유형: 소스 제어
유형 세부정보를 요청하면 페이지가 새로 고쳐집니다.
- 이름:
-
Git 서버의 사용자 이름을 입력합니다.
- 사용자 이름:
git
- 사용자 이름:
-
Git 서버의 프라이빗 키 콘텐츠를 복사하여 SCM 프라이빗 키 필드에 붙여넣습니다.
사용 가능한 실습 환경에서는 기본
~/.ssh/id_rsa
파일을 사용합니다. -
검토 후 저장 버튼을 누릅니다.
프로젝트 생성
-
탐색 메뉴에서 프로젝트를 누릅니다.
-
추가 단추를 누릅니다.
-
특정 필드에서 다음 값을 입력하거나 선택합니다.
- 이름:
My Project
- 실행 환경: OLAM EE(2.3)
- 소스 제어 인증서 유형: Git
유형 세부정보를 요청하면 페이지가 새로 고쳐집니다.
- 소스 제어 URL:
git@<ip_address_of_instance>:/git-server/repos/myproject.git
- 소스 제어 브랜치:
main
- 소스 제어 인증서: Git Server
무료 실습 환경에서는 소스 제어 URL 필드의 git-server IP 주소를 사용합니다.
- 이름:
-
검토 후 저장 버튼을 누릅니다.
-
프로젝트 동기화 상태를 검토합니다.
프로젝트를 생성한 후 웹 UI는 동기화가 시작될 때 세부정보 요약에 상태를 표시합니다. 구성이 올바르고 Git 서버에 연결할 수 있는 경우 상태가 Running에서 Successful로 전환됩니다.
작업 템플리트 생성
-
탐색 메뉴에서 Templates를 누릅니다.
-
추가 단추를 누르고 값 드롭다운 목록에서 작업 템플리트 추가를 선택합니다.
-
필요한 값을 입력하거나 선택합니다.
- 이름:
My Template
- 작업 유형: 실행
- 재고: 내 로컬 재고
- 프로젝트: 내 프로젝트
- 실행 환경: OLAM EE(2.3)
- 재생책: get_namespace.yml
- 이름:
-
인증서를 선택합니다.
인증서를 선택하면 인증서 선택 팝업 대화상자가 나타납니다. 선택한 범주 드롭다운 값 목록에서 Oracle Cloud Infrastructure를 선택하여 해당 유형의 인증서를 표시합니다.
-
내 OCI 인증서를 선택한 다음 선택 단추를 누릅니다.
-
작업 템플리트 항목을 검토합니다.
-
페이지 아래로 스크롤하고 Save 버튼을 누릅니다.
-
템플리트를 실행합니다.
실행 단추를 눌러 템플리트 요약 페이지에서 작업을 실행합니다.
성공하면 작업이 실행되고 OCI 테넌시의 네임스페이스를 포함하여 템플리트의 출력이 표시됩니다. 필요한 경우 Reload output 링크를 눌러 출력 패널을 새로 고칠 수 있습니다.
다음 단계
네임스페이스를 보여주는 출력에서는 Oracle Cloud Infrastructure Ansible Collection을 활용하는 플레이북 사용 방법을 보여주는 작업 구성 및 프로젝트가 있음을 확인합니다. 모음으로 추가로 테스트하여 테넌시에 인스턴스 및 기타 리소스를 배치합니다.
관련 링크
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Use OCI Ansible Collection with Oracle Linux Automation Manager
F76746-03
Copyright ©2023, Oracle and/or its affiliates.