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) 사용
참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vcenter_folder_module.html
아래 처럼 각 단계마다 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
folder를 생성하는 yaml 파일 작성
ansible로 yaml 파일 실행
지정한 위치에 폴더가 생성됨 확인
참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_vswitch_module.html
UPlink 필요 없음.(기본 스위치만 생성)
기본 스위치를 생성하는 yaml 파일 작성.
vSphere에서 스위치 생성 확인.
참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_deploy_ovf_module.html
참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_deploy_ovf_module.html
VA Template 이미지를 이용해서 Router 만들 것이다. VyOS Template OVA 파일을 이요해서 Deploy하는 yaml 파일을 작성하고, 이 파일을 실행한다.
생성됨.
참고: 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 실행
참고: https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_guest_module.html
생성할 VM 목록
여러개의 VM들을 한번에 만들기 위해 loop를 사용한다.
yaml 파일 작성.
Bastion은 두개의 IP가 필요하기 때문에 설정 변경이 필요하다. 따라서 Bastion VM에 Network Adapter()를 추가 하는 yaml을 작성하여 외부와
Storage를 TruNAS로 설정하는 과정이 필요함.