1. OS 세팅
- Ubuntu 20.04로 마스터 이미지 (server)
$ sudo passwd
$ userdel ubuntu
# OS 표준화를 하는 동안만 네트워크 사용함
/etc/netplan/01-xxx.yaml 에서 IP 세팅
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
dhcp6: no
addresses:
- 10.20.4.11/24
gateway4: 10.20.4.1
nameservers:
addresses:
- 8.8.8.8
$ netplan apply
$ ifconfig
$ apt update && apt upgrade -y
$ apt install -y net-tools
# ssh root Login 허용시키기 고객사별 다를수 있음
$ vi /etc/ssh/sshd_config
$ PermitRootLogin yes
처음에는 ssh 관련해서는 Root 로그인만 풀어놓고 작업
후에 os 최적화에서 다시 세팅할거임
현재까지 작업 진행사항
- 사용자계정은 지운다
- 루트 권한 ssh 열어준다
- 네트워크와 nameserver 8.8.8.8 사용해서 세팅하고 다시 끊어줄것이다.
2. VMtools 설치 , Cloud-init 설치
🆘 vmtools 란?
VMware Tools는 게스트 운영 체제에 대한 더 나은 관리 및 원활한 사용자 상호 작용을 위해
VMware 제품의 일부 기능을 사용하도록 설정하는 서비스 및 모듈 집합입니다.
VM을 생성하고 전원을 올리면 VMware Tools가 설치되어 있지 않다는 주의 표시가 뜬다.
필수로 쓰는 기능들 여러가지를 제공한다.
$ 가상 머신 Guest OS 종료/재부팅 작업
$ VM IP, DNS 등의 정보 GUI 표기
$ 호스트와 게스트 시간 동기화
$ 정지 상태 스냅샷 생성
🆘 cloud-init 란?
Cloud-Init은 호스트 이름, 네트워크 인터페이스, 그리고 인증키를 설정하는 것과 같은
가상 머신 초기 설정을 자동화하는 도구입니다.
이 도구를 사용하면 템플릿을 바탕으로 배포된 가상 머신에 대한 프로비저닝을 할 때 IP 등도
세팅 할수 있는데, VMware는 IPAM이 따로 있어서
cloud-init에서 일부 config에 네트워크 세팅 부분을 주석처리 해주고 사용한다.
- vmtools 센터에서 UI 클릭하면 마운트됨
- 마운트 위치 확인하고 tmp 로 옮김
- 설치
$ echo "check vmware tools disconnection in vcenter"
$ echo "and execute installing vmware tools in guest operation menu"
$ echo -n "press enter to next: "; read _KEY
$ mount /dev/cdrom /mnt
$ cp /mnt/VMwareTools-* /tmp/vmtools.tar.gz
$ cd /tmp && tar -xzvf vmtools.tar.gz
$ /tmp/vmware-tools-distrib/vmware-install.pl
$ cd ~
3. cloud-init = 부팅 시 config 함
- IPAM 으로 세팅할경우 (cloud-init disabled 걸어줘야함)
sed -i 's/disable_root: true/disable_root: false/g' /etc/cloud/cloud.cfg
sed -i 's/preserve_hostname: false/preserve_hostname: true/g' /etc/cloud/cloud.cfg
sed -i '/ package_mirrors:/,/ ssh_svcname: ssh/d' /etc/cloud/cloud.cfg
cat <<EOF>> /etc/cloud/cloud.cfg
package_mirrors:
- arches: [i386, amd64]
failsafe:
primary: $REPO/ubuntu
security: $REPO/ubuntu
search:
primary:
- $REPO/ubuntu/
security:
- $REPO/ubuntu/
ssh_svcname: ssh
EOF
echo 'network: {config: disabled}' > /etc/cloud/cloud.cfg.d/99_network_disabled.cfg
- 클라우드 이닛으로 네트워크 설정할경우 (OS별 굉장한 의존성에 대한 troubleShooting 필요) ❌ 권장하지 않음
4. OS 최적화 시스템설정 ( 여기서부터는 죄다 optional한 부분)
대기시간 줄이기, 불필요 서비스 disabled 등 고객사마다 요청사항이 조금 상이하다.
- 스냅삭제 : 현재 서비스에 대한 무결성 체크 / 성능에 영향 미침
- 스왑 disable ( 스왑 파일 시스템, 디스크 io를 늘려서 오버커밋팅 남. )
- 불필요 데몬 삭제
- cloud-init 찌꺼기 제거 (우분투는 자동으로 깔려있음)
❌ufw 방화벽 off
❌open-vm-tools (권장안함)
- cloud-init 찌꺼기 제거 (우분투는 자동으로 깔려있음)
- GRUB ( 부트로더 : 커널 적재 시켜주는 것 )
- 우분투 서버 이미지는 기본 0 / desktop 0초
- redhat, Centos 5초 /10초로 되어있음
# cd /etc/defaults
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet noresume"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
~
부팅 전에 "no resume" 옵션을 설정하여 인텔 그래픽 기능을 비활성화
- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 이부분 "quiet no resume" 으로 변경
$ swapoff -v /<PATH>/swapfile
# 예시
$ swapoff -v /data1/swapfile
$ rm /data1/swapfile
- 데몬 서비스 실패 시 90초 대기 옵션이 default로 되어있음 : 10초로 변경
vim /etc/systemd/system.conf
다 주석처리 되있으면 default로 적용됨
#DefaultTimeoutStartSec
#DefaultTimeoutStopSec
#DefaultTimeoutReStartSec
- UTC 시간 -> KST 시간
- DNS / NTP : DNS는 보통 cloud init 이 설정함
- vMotion 자주되는 가상환경에서는 NTP 동기화를 esxi 호스트시간에 맞춤
- 어플리케이션이 중요한 환경일 경우는 NTP 동기화를 NTP 서버에 맞춤
- sshd_config
$ vi /etc/ssh/sshd_config
$ PermitRootLogin yes
$ ClientAliveInterval 300 ssh세션 끊기는 타임아웃을 5분까지 늘려줌
$ ClientAliveCountMax 12 12번까지는 체크 허용하겠다.
$ StrictHostKeyChecking no ( 불필요함 )
$ UserKnownsHostsFile /dev/null ( ssh 접속 시 unknown ip 저장 후에 아이피 변동시 지워줘야 함 )
5. 네트워크 인터페이스 지워주기
- 템플릿을 말기전에 인터페이스와 ip를 제거한 후에 말아야함
* ip는 반드시 제거해야함.
* 나는 스크립트 하나 짜서 service로 등록해서 쓰긴함
# Remove Ubuntu Network Files
rm -rf /etc/network/interfaces
rm -rf /etc/netplan/*
# Remove CentOS Network FIles
rm -rf /etc/sysconfig/network-scripts/ifcfg-*
# Remove Cloud init Data
rm -rf /var/lib/cloud/*
# General Clearing
혹시나 참고사항
# EFI vs GRUB
오래된 장비를 사용하는 고객사에서
EFI가 아니라 일반 GRUB을 쓸수도 있음
❌확인해보고 EFI 파티션을 구성하고 OS 설치할수 있도록
# 우분투 서버 버전 이미지 작업/ desktop 버전 이미지 작업 조금 다름
❌server 버전에선 netplan / ifconfig의 차이에 대해서 어차피 신경안써도된다 (IPAM이 해서)
❌desktop 버전에선 NetworkManager라는 서비스가 네트워크를 관리 하기 때문에 제거해야 한다.
# apt-get remove network-manager
# Vrealize Automation의 어려운점
1. 레포 없을때 binary 받아서 설치 : 비추천
2. 처음 infrastructor과 profile 등록하는게 생각보다 어려움
3. OS 세팅부분 고객사마다 너무 다름
•커널파라미터, OS config, 의존성 패키지들
•Application, 미들웨어, 업무 및 운영 관련 S/W에서 필요로 하는 Pre-Install 패키지 목록 조사 및 설치
•JDK, X-윈도, gcc., ksh, rsh, make ... 등
•내/외장 스토리지 할당 및 파일시스템 생성
•용량, Owner, 권한 정의
•Mount Point 정의 및 fstab 등록
4. NSX 리소스 사용방법
- Tier 0 게이트웨이는 자동 생성 하지 못함
# 문의사항
1. 바이너리설치 - 현실적으로 불가능
부담은 되지만 , 레포를 만드는게 무조건 낫다 장애요소가 많이 있지 않고, 일반적으로 우분투 250GB \
레드헷은 좀 더 큼
2. 오케스트레이터와 커스텀 스크립트
유명 CSP 마냥 (AWS처럼) vRA를 쓰려면 오케스트레이터와, 커스텀 리소스를 사용할줄 알아야 한다.
동적 input값 구성이 가능하다.
3. 커스텀 리소스 잘 활용하면
간단한 API들 구성해서 AWS SDK 같은거 활용하면 왠만한 public cloud도 다 컨트롤 가능하다.
하지만 개발이 너무 많이 들어감 ..
'VMware' 카테고리의 다른 글
[Tanzu] Spring, Springboot, Spring-Cloud 소개 (0) | 2023.01.03 |
---|---|
[Tanzu] VMware Tanzu Application Platform(TAP) 소개 (0) | 2022.12.27 |
[Tanzu] VMware Tanzu Kubernetes Grid (TKG) 소개 (0) | 2022.12.26 |
[Tanzu] VMware Tanzu Application Service 소개 (0) | 2022.12.22 |
[Tanzu] VMware Tanzu Portfolio 소개 (0) | 2022.12.20 |