ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Management Ubuntu VMs on Multipass
    os 2020. 8. 24. 08:30

    Multipass

    Multipass는 Linux 인스턴스를 시작, 관리 및 조작 할 수있는 명령 줄 인터페이스를 제공합니다.
    기존 이미지를 다운로드하는 데 몇 초 밖에 걸리지 않으며 몇 분 안에 VM을 가동하고 실행할 수 있습니다.

    Install

    iOS brew

    brew cask install multipass

    Linux

    lsb_release -d
    sudo snap install multipass --classic --beta

    VM

    인스턴스 시작 (기본으로 현재 Ubuntu LTS를 얻음)

    multipass launch --name ubuntu-lts

    해당 인스턴스에서 명령을 실행하고 bash를 실행한다. (종료하려면 로그 아웃 또는 ctrl-d)

    multipass exec ubuntu-lts -- lsb_release -a

    인스턴스 목록

    multipass list
    multipass ls

    빠른 인스턴스 시작 및 셀 로그인

    $ multipass launch
    One quick question before we launch … Would you like to help
    the Multipass developers, by sending anonymous usage data?
    This includes your operating system, which images you use,
    the number of instances, their properties and how long you use them.
    We’d also like to measure Multipass’s speed.
    
    Send usage data (yes/no/Later)? y
    Thank you!
    Launched: vaulting-peafowl
    
    $ multipass shell vaulting-peafowl

    인스턴스 시작 및 종료, 정리

    multipass start ubuntu-lts
    multipass stop ubuntu-lts ubuntu-lts-custom
    
    multipass delete ubuntu-lts-custom
    multipass purge

    Launch help

    By passing a filename to --cloud-init, you can provide “user data” to cloud-init to customize the instance on first boot. See their documentation for examples.
    --cloud-init에 파일 이름을 전달하면 "사용자 데이터"를 cloud-init에 제공하여 처음 부팅 할 때 인스턴스를 사용자 지정할 수 있습니다. 예제는 설명서를 참조하십시오.

    $ multipass help launch
    Usage: multipass launch [options] [[<remote:>]<image> | <url>]
    Create and start a new instance.
    
    Options:
      -h, --help           Display this help
      -v, --verbose        Increase logging verbosity. Repeat the 'v' in the short
                           option for more detail. Maximum verbosity is obtained
                           with 4 (or more) v's, i.e. -vvvv.
                           로깅 상세도를 높입니다. 
                           자세한 내용을 보려면 짧은 옵션에서 'v'를 반복하십시오. 
                           최대 상세도는 4 (또는 그 이상) v, 즉 -vvvv로 얻을 수 있습니다.
      -c, --cpus <cpus>    Number of CPUs to allocate.
                           Minimum: 1, default: 1.
                           할당 할 CPU 수.
                           최소 : 1, 기본값 : 1.
      -d, --disk <disk>    Disk space to allocate. Positive integers, in bytes, or
                           with K, M, G suffix.
                           Minimum: 512M, default: 5G.
                           할당 할 디스크 공간.
                           양의 정수 (바이트) 또는 K, M, G 접미사로.
                           최소 : 512M, 기본값 : 5G.
      -m, --mem <mem>      Amount of memory to allocate. Positive integers, in
                           bytes, or with K, M, G suffix.
                           Minimum: 128M, default: 1G.
                           할당 할 메모리 양. 양의 정수, 바이트 또는 K, M, G 접미사.
                           최소 : 128M, 기본값 : 1G.
      -n, --name <name>    Name for the instance. If it is 'primary' (the
                           configured primary instance name), the user's home
                           directory is mounted inside the newly launched instance,
                           in 'Home'.
                           인스턴스의 이름입니다. 
                           'primary'(구성된 기본 인스턴스 이름) 인 경우 사용자의 홈 디렉토리는 
                           'Home'의 새로 시작된 인스턴스 내에 마운트됩니다.
                           * primary 는 호스트 컴퓨터의 사용자 Path 가 생성된 인스턴스의 /home/ubuntu/Home 에 마운트 된다.
      --cloud-init <file>  Path to a user-data cloud-init configuration, or '-' for
                           stdin
                           사용자 데이터 cloud-init 구성에 대한 경로 또는 stdin의 경우 '-'
    
    Arguments:
      image                Optional image to launch. If omitted, then the default
                           Ubuntu LTS will be used.
                           <remote> can be either ‘release’ or ‘daily‘. If <remote>
                           is omitted, ‘release’ will be used.
                           <image> can be a partial image hash or an Ubuntu release
                           version, codename or alias.
                           <url> is a custom image URL that is in http://, https://,
                           or file:// format.
                           실행할 선택적 이미지입니다. 
                           생략하면 기본 Ubuntu LTS가 사용됩니다.
                           <remote>는‘release’또는‘daily‘일 수 있습니다. 
                           <remote>를 생략하면 'release'가 사용됩니다.
                           <image>는 부분 이미지 해시 또는 Ubuntu 릴리스 버전, 코드 이름 또는 별칭 일 수 있습니다.
                           <url>은 http : //, https : // 또는 file : // 형식의 사용자 지정 이미지 URL입니다.

    사용자 정의 인스턴스 시작

    multipass launch -c 2 -m 2048G -d 10G -n product

    인스턴스 정보

    $ multipass info primary
    Name:           primary
    State:          Running
    IPv4:           192.168.64.3
    Release:        Ubuntu 20.04.1 LTS
    Image hash:     896d13fcadd1 (Ubuntu 20.04 LTS)
    Load:           0.00 0.00 0.00
    Disk usage:     1.2G out of 4.7G
    Memory usage:   138.0M out of 981.4M
    Mounts:         /Users/username => Home   # MacOS
                        UID map: 501:default
                        GID map: 20:default

    인스턴스 사용자 데이터 마운트

    $ multipass mount $HOME instance_name
    $ multipass info instance_name
    ...
    Mounts:         /home/username => /home/ubuntu
    
    $ multipass mount $HOME instance_name:/some/path
    $ multipass info instance_name
    ...
    Mounts:         /home/username => /some/path
    
    $ multipass mount /home/username/some/path instance_name:/some/path
    $ multipass info instance_name
    ...
    Mounts:         /home/username/some/path => /some/path

    인스턴스 명령어 실행

    multipass exec primary mkdir test test2
    multipass exec primary -- ls -l

    파일 복사

    $ multipass transfer -h
    Usage: multipass transfer [options] <source> [<source> ...] <destination>
    Copy files between the host and instances.
    
    Options:
      -h, --help     Display this help
      -v, --verbose  Increase logging verbosity. Repeat the 'v' in the short option
                     for more detail. Maximum verbosity is obtained with 4 (or more)
                     v's, i.e. -vvvv.
    
    Arguments:
      source         One or more paths to transfer, prefixed with <name:> for paths
                     inside the instance, or '-' for stdin
                     전송할 하나 이상의 경로, 인스턴스 내부 경로의 경우 <name :> 접두사, stdin의 경우 '-'
      destination    The destination path, prefixed with <name:> for a path inside
                     the instance, or '-' for stdout
                     인스턴스 내부 경로의 경우 <name :> 접두사가 붙은 대상 경로, stdout의 경우 '-'

    인스턴스 파일을 호스트로 복사

    multipass transfer primary:/home/ubuntu/.profile ./.profile.back
    multipass transfer primary:.profile ./.profile.back

    호스트 파일을 인스턴스로 복사

    multipass transfer README.md primary:test2/README.md

    -소스, 대상 모드 인스턴스 지정 불가능-

    $ multipass transfer primary:test2/README.md primary:test/README.md
    Cannot specify an instance name for both source and destination
    소스와 대상 모두에 인스턴스 이름을 지정할 수 없습니다.

    'os' 카테고리의 다른 글

    Management Ubuntu VMs on Multipass  (0) 2020.08.24
    FTP, SFTP Mount  (0) 2019.03.22
    dmg파일 어디에 쓰는물건인고?  (0) 2010.12.13

    댓글 0

Designed by Tistory.