230817-Openshift_1

soo·2023년 8월 18일
0

openshift

목록 보기
1/1

Openshift Project 준비

Openshift 사용 참고 자료: https://docs.openshift.com/container-platform/4.12/installing/installing_bare_metal/installing-bare-metal.html

Openshift 사용 이유: kubernetes 사용시, 서로 다른 환경(Cloud + On-Premise 또는 Cloud + Cloud)을 같이 사용할 수 있도록 설정이 편함.

프로젝트 참고 사이트: https://patton-kdt.notion.site/patton-kdt/RECA-3-1-Openshift-on-vSphere-VM-BareMetal-26112f9b5c494a6e9c2c50099883155c

Bastion: 일종의 Proxy 시스템

프로젝트: DHCP, NAT, 사용

VyOS:

AD(Active Directory) 사용 예정: 기업환경에서 허락된 사용자만 접근이 가능하도록.
LDAP: 다수의 회원 관리용

쿠버네티스 환경: Openshift 사용

Storage: NFS(Truenas) 사용


Project 파일 생성

VMware vSphere (with. Ansible)

1. 주어진 vSphere 환경에 VM Folder 생성

참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vcenter_folder_module.html

Examples

아래 처럼 각 단계마다 ansible 공식 사이트의 examples를 참고해 yaml 파일을 작성하자.

- name: Create a VM folder on given datacenter
  community.vmware.vcenter_folder:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter_name: datacenter_name
    folder_name: sample_vm_folder
    folder_type: vm
    state: present
  register: vm_folder_creation_result
  delegate_to: localhost

- name: Create a datastore folder on given datacenter
  community.vmware.vcenter_folder:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter_name: datacenter_name
    folder_name: sample_datastore_folder
    folder_type: datastore
    state: present
  register: datastore_folder_creation_result
  delegate_to: localhost

- name: Create a sub folder under VM folder on given datacenter
  community.vmware.vcenter_folder:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter_name: datacenter_name
    folder_name: sample_sub_folder
    parent_folder: vm_folder
    state: present
  register: sub_folder_creation_result
  delegate_to: localhost

- name: Delete a VM folder on given datacenter
  community.vmware.vcenter_folder:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter_name: datacenter_name
    folder_name: sample_vm_folder
    folder_type: vm
    state: absent
  register: vm_folder_deletion_result
  delegate_to: localhost

IaC 서버로 이동

folder를 생성하는 yaml 파일 작성

ansible로 yaml 파일 실행

지정한 위치에 폴더가 생성됨 확인

2. 기본 스위치 생성

참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_vswitch_module.html

UPlink 필요 없음.(기본 스위치만 생성)

기본 스위치를 생성하는 yaml 파일 작성.

vSphere에서 스위치 생성 확인.

3. 프로젝트 스위치에 Port Group 생성

참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_deploy_ovf_module.html

4. Router VM 만들기 (OVA Template 생성)

참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_deploy_ovf_module.html

VA Template 이미지를 이용해서 Router 만들 것이다. VyOS Template OVA 파일을 이요해서 Deploy하는 yaml 파일을 작성하고, 이 파일을 실행한다.

생성됨.

5. Router 설정

참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_vm_shell_module.html

이 과정에서 주의해야하는 사항은 vm의 이름에 맞춰서 만들어야 되며, VyOS Router를 설정하는 shell 명령어를 포함해야 한다.

생성된 VM(VyOS Router)를 설정하는 yaml 파일을 작성.

사용한 shell 명령어

configure  # 환경 설정 모드로 들어감

set system login user admin full-name Admin_User  # 관리자 사용자의 풀 이름 설정
set system login user admin authentication plaintext-password VMware1!  # 관리자 사용자의 비밀번호 설정
set service ssh port 22  # SSH 포트 설정

set system ipv6 disable  # IPv6 비활성화

set interfaces ethernet eth0 address dhcp  # eth0 인터페이스에 DHCP를 사용하여 IP 주소 할당
set interfaces ethernet eth0 description Outside  # eth0 인터페이스에 설명 추가
set interfaces ethernet eth0 ipv6 address no-default-link-local  # eth0 인터페이스의 IPv6 주소 설정
set protocols static route 0.0.0.0/0 next-hop 192.168.3.1  # 기본 경로 설정

set interfaces ethernet eth1 description 'Openshift Network'  # eth1 인터페이스에 설명 추가
set interfaces ethernet eth1 address 10.10.10.1/24  # eth1 인터페이스에 IP 주소 설정
set interfaces ethernet eth0 ipv6 address no-default-link-local  # eth1 인터페이스의 IPv6 주소 설정

set system name-server 192.168.3.3  # 이름 서버 주소 설정
set system ntp server kr.pool.ntp.org  # NTP 서버 주소 설정

set nat source rule 10 outbound-interface eth0  # NAT 소스 규칙 설정
set nat source rule 10 source address 10.10.10.0/24  # NAT 소스 규칙의 소스 주소 설정
set nat source rule 10 translation address masquerade  # NAT 소스 규칙의 변환 주소 설정

set service dhcp-server shared-network-name Openshift subnet 10.10.10.0/24 default-router '10.10.10.1'  # DHCP 서버 설정
set service dhcp-server shared-network-name Openshift subnet 10.10.10.0/24 name-server '10.10.10.2'  # DHCP 서버의 이름 서버 설정
set service dhcp-server shared-network-name Openshift subnet 10.10.10.0/24 domain-name 'vclass.local'  # DHCP 서버의 도메인 이름 설정
set service dhcp-server shared-network-name Openshift subnet 10.10.10.0/24 range 0 start '10.10.10.100'  # DHCP 서버의 IP 주소 할당 범위 시작 설정
set service dhcp-server shared-network-name Openshift subnet 10.10.10.0/24 range 0 stop '10.10.10.200'  # DHCP 서버의 IP 주소 할당 범위 종료 설정

commit  # 변경 사항 커밋
save  # 변경 사항 저장

yaml 실행

6. VM들 생성

참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_guest_module.html

생성할 VM 목록

여러개의 VM들을 한번에 만들기 위해 loop를 사용한다.
yaml 파일 작성.

7. Bastion VM 설정 수정

Bastion은 두개의 IP가 필요하기 때문에 설정 변경이 필요하다. 따라서 Bastion VM에 Network Adapter()를 추가 하는 yaml을 작성하여 외부와

8. Storage 설정

Storage를 TruNAS로 설정하는 과정이 필요함.

profile
이것저것 공부하는

0개의 댓글