본문 바로가기

리눅스

[draft] 우분투에서 cloud-init을 사용하여 운영체제 설치를 자동화하는 방법 - 작성중

728x90

우분투에서 cloud-init을 사용하여 운영체제 설치를 자동화하는 방법(Auto Install)

우분투에서 cloud-init을 사용하여 운영체제 설치를 자동화하는 것은 클라우드 환경에서 인스턴스 초기 설정을 쉽게 할 수 있게 해주는 방법입니다. cloud-init은 다양한 클라우드 서비스 제공자에서 지원되며, 메타데이터 서버를 통해 초기 설정 정보를 받아 처리합니다.

1. cloud-init 기본 개념 이해하기

cloud-init은 클라우드 인스턴스 초기화 작업을 자동화하는 도구로 다음과 같은 작업을 수행할 수 있습니다.

  • 네트워크 설정
  • 사용자 및 그룹 생성
  • 패키지 설치
  • 스크립트 실행
  • 파일 및 디렉토리 생성

2. cloud-init 구성 파일 작성하기

cloud-init은 YAML 형식의 구성 파일을 사용합니다. 기본적으로 user-data 파일이라고 불리며 인스턴스가 처음 부팅될 때 읽어들여 설정을 수행합니다.

3. ISO 이미지를 사용하여 운영체제 설치

생성된 ISO 이미지를 사용하여 운영체제를 설치합니다. 설치 중에 cloud-init은 구성 파일을 읽어 시스템을 자동으로 설정합니다.

4. 설치 후 부팅

설치가 완료되면 시스템을 재부팅하고, cloud-init은 구성 파일에 따라 시스템을 설정합니다.

sudo touch {meta-data,user-data,vendor-data}

cloud-init 구성 파일

sudo vim user-data
#cloud-config
autoinstall:
  apt:
    geoip: true
    preserve_sources_list: false
    primary:
      - arches: [amd64, i386]
        uri: http://archive.ubuntu.com/ubuntu
      - arches: [default]
        uri: http://ports.ubuntu.com/ubuntu-ports
  identity: {hostname: pxe-clinet, password: ubuntu, realname: ubuntu, username: ubuntu}
  keyboard: {layout: us, toggle: null, variant: ''}
  locale: en_US
  ssh:
    allow-pw: true
    install-server: true
  storage:
    config:
      - {ptable: gpt, path: /dev/sda, wipe: superblock, preserve: false, name: '', grub_device: true, type: disk, id: disk-sda}
      - {device: disk-sda, size: 1073741824, wipe: superblock, flag: '', number: 1, preserve: false, type: partition, id: partition-1}
      - {fstype: xfs, volume: partition-1, preserve: false, type: format, id: format-1}
      - {device: disk-sda, size: -1, wipe: superblock, flag: '', number: 2, preserve: false, type: partition, id: partition-2}
      - {name: ubuntu-vg, devices: [partition-2], preserve: false, type: lvm_volgroup, id: lvm_volgroup-0}
      - {name: ubuntu-lv, volgroup: lvm_volgroup-0, size: 100%, preserve: false, type: lvm_partition, id: lvm_partition-0}
      - {fstype: xfs, volume: lvm_partition-0, preserve: false, type: format, id: format-2}
      - {device: format-1, path: /boot, type: mount, id: mount-1}
      - {device: format-2, path: /, type: mount, id: mount-2}
  network:
    network:
      version: 2
      ethernets:
        ens3:
          dhcp4: true
  version: 1

 

참고URL

Ubuntu installation documentation : Automated Server installation

Ubuntu installation documentation : Autoinstall schema

 

728x90