jumpbox on vSphere for Tanzu

Posted by Just Do It ! 행동하지 않으면 성공도 실패도 없다 on Wednesday, December 23, 2020

이 문서는 vsphere 환경에서 tanzu를 설치/설정하기 위해 사용하는 jumpbox 를 손쉽게 사용하기 위한 문서이다.

deploy OVA

대체로 Private Cloud이든 Public Cloud이든 동일한 작업환경을 위해서 Jumpbox를 설치해서작업을 하며 Jumpbox로는 ubuntu server 를 많이 사용한다. 여기서도 ubuntu-server-20.04.1 (LTS) 을 기준으로 설명한다.

https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.ova

iso로 실제 ubuntu-server를 설치해도 되고, 이미 export 해놓은 ova를 업로드하여 사용할 수 있지만, Public internet이 되는 환경이라면 이미 만들어진 ubuntu-cloudimage 를 사용하는 것도 좋다.

ubuntu cloud image는 https://cloud-images.ubuntu.com 에서 받을 수 있다. kaist 나 daum 같은 ftp mirror 를 제공하는 곳에서는 대체로 ubuntu release(cdimages)나 cd/iso 만 mirror 해서 제공하는데 cloud-image 도 제공해 주면 좋겠다.

https://cloud-images.ubuntu.com 사이트에는 ubuntu 의 각 릴리즈별 이미지를 제공한다.

  • windows Azure/Hyper-V images
  • Vagrant images
  • VMware/Virtualbox OVA
  • img

user-data 와 meta-data

cloud image 는 cloud-init과 cloud-config을 사용하도록 만들어진 image라고 보면 되는데, cloud-config은 크게 user-data와 meta-data 라는 두가지 데이터를 통해서 초기 이미지 기동 시 인스턴스에 필요한 설정을 한다.

  • user-data : 사용자 데이터
  • meta-data : cloud-provider들에 대한 설정 데이터

  • 기본으로 ubuntu 라는 사용자가 생성되어 있으며, IP address 는 DHCP로 할당 받도록 되어 있다

meta-data

network:
  version: 2
  ethernets:
    id0:
      match: { name: ens* }
      dhcp4: false
      dhcp6: false
      addresses: [10.213.89.254/24]
      gateway4: 10.213.89.1
      nameservers:
        addresses: [10.192.2.10,10.192.2.11,8.8.8.8]

https://raw.githubusercontent.com/jupilhwang/cli-install/master/network

user-data

users:
  - default
ssh_pwauth: True
chpasswd: { expire: False}
runcmd:
  - curl -sSL https://raw.githubusercontent.com/jupilhwang/cli-install/master/init.sh | bash - 
final_message: "The system is finally up, after $UPTIME seconds"

user-data는 base64 encoded data 로 제공이 되어야 하는데, 위의 yaml을 encode 하면 아래와 같다.

dXNlcnM6CiAgLSBkZWZhdWx0CnNzaF9wd2F1dGg6IFRydWUKY2hwYXNzd2Q6IHsgZXhwaXJlOiBGYWxzZX0KcnVuY21kOgogIC0gY3VybCAtc1NMIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9qdXBpbGh3YW5nL2NsaS1pbnN0YWxsL21hc3Rlci9pbml0LnNoIHwgYmFzaCAtIApmaW5hbF9tZXNzYWdlOiAiVGhlIHN5c3RlbSBpcyBmaW5hbGx5IHVwLCBhZnRlciAkVVBUSU1FIHNlY29uZHMiCg==