Packer: Packer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Virtual Box Builder๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋””์Šคํฌ ์ƒ์„ฑ

์— ๋งŒ๋“  2015๋…„ 08์›” 17์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: hashicorp/packer

vbox createmedium ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๋ฒˆ์งธ ๋””์Šคํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ๋‘ ๋ฒˆ์งธ ๋””์Šคํฌ๊ฐ€ ๋‹ค๋ฅธ ํด๋”์— ์ƒ์„ฑ๋˜๊ณ  ๊ธฐ๋ณธ ๋””์Šคํฌ๊ฐ€ output-virtualbox-iso ํด๋”์— ์ƒ์„ฑ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ฝ์€ ํ›„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‘ ๋ฒˆ์งธ ๋””์Šคํฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

 "vboxmanage": [
        [ "modifyvm", "{{.Name}}", "--memory", "2048" ],
        [ "modifyvm", "{{.Name}}", "--cpus" , "2" ],
        ["storageattach", "{{.Name}}", "--storagectl", "SCSI Controller", "--port", "1", "--device", "2", "--type", "hdd", "--medium", "output-virtualbox-iso/sdb.vdi"]
        ]

๋””๋ฒ„๊ทธ ๋กœ๊ทธ ์ถœ๋ ฅ

2015/08/17 09:43:53 ui: ==> virtualbox-iso: Creating virtual machine...
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"createvm", "--name", "shashank", "--ostype", "RedHat_64", "--register"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout: Virtual machine 'shashank' is created and registered.
2015/08/17 09:43:53 packer-builder-virtualbox-iso: UUID: 6e98a276-bf26-4b67-acfb-176c30240a5d
2015/08/17 09:43:53 packer-builder-virtualbox-iso: Settings file: '/apps_data_01/Virtualbox/shashank/shashank.vbox'
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--boot1", "disk", "--boot2", "dvd", "--boot3", "none", "--boot4", "none"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--cpus", "1"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--memory", "512"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Creating hard drive...
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"createhd", "--filename", "output-virtualbox-iso/shashank.vdi", "--size", "81040", "--format", "VDI", "--variant", "Standard"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout: Medium created. UUID: 97572aa8-dd9a-42c3-947c-72795db83167
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storagectl", "shashank", "--name", "IDE Controller", "--add", "ide"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storagectl", "shashank", "--name", "SCSI Controller", "--add", "scsi", "--controller", "LSILogic"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "SCSI Controller", "--port", "0", "--device", "0", "--type", "hdd", "--medium", "output-virtualbox-iso/shashank.vdi"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--type", "dvddrive", "--medium", "/apps_data_01/packer-templates/packer_cache/c50dbd33d853ece2fd2d7b1a524ae5868134427a2fef9d98ea5b34fa19c67e82.iso"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Not attaching guest additions since we're uploading.
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 No floppy disk, not attaching.
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Looking for available SSH port between 2222 and 4444
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Trying port: 4157
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Creating forwarded port mapping for SSH (host port 4157)
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--natpf1", "packerssh,tcp,127.0.0.1,4157,,22"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Executing custom VBoxManage commands...
2015/08/17 09:43:53 ui:     virtualbox-iso: Executing: modifyvm shashank --memory 2048
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--memory", "2048"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui:     virtualbox-iso: Executing: modifyvm shashank --cpus 2
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"modifyvm", "shashank", "--cpus", "2"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui:     virtualbox-iso: Executing: storageattach shashank --storagectl SCSI Controller --port 1 --device 2 --type hdd --medium output-virtualbox-iso/sdb.vdi
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "SCSI Controller", "--port", "1", "--device", "2", "--type", "hdd", "--medium", "output-virtualbox-iso/sdb.vdi"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
2015/08/17 09:43:53 packer-builder-virtualbox-iso: VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
2015/08/17 09:43:53 packer-builder-virtualbox-iso: VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
2015/08/17 09:43:53 packer-builder-virtualbox-iso: VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 ui error: ==> virtualbox-iso: Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
==> virtualbox-iso: VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
==> virtualbox-iso: VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
==> virtualbox-iso: VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"storageattach", "shashank", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--medium", "none"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr:
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Unregistering and deleting virtual machine...
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 Executing VBoxManage: []string{"unregistervm", "shashank", "--delete"}
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stdout:
2015/08/17 09:43:53 packer-builder-virtualbox-iso: 2015/08/17 09:43:53 stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
2015/08/17 09:43:53 ui: ==> virtualbox-iso: Deleting output directory...
2015/08/17 09:43:53 ui error: Build 'virtualbox-iso' errored: Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 Builds completed. Waiting on interrupt barrier...
2015/08/17 09:43:53 machine readable: error-count []string{"1"}
2015/08/17 09:43:53 ui error:
==> Some builds didn't complete successfully and had errors:
2015/08/17 09:43:53 machine readable: virtualbox-iso,error []string{"Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)\nVBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports\nVBoxManage: error: Context: \"OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())\" at line 177 of file VBoxManageDisk.cpp\nVBoxManage: error: Invalid UUID or filename \"output-virtualbox-iso/sdb.vdi\""}
2015/08/17 09:43:53 ui error: --> virtualbox-iso: Error executing command: VBoxManage error: VBoxManage: error: Could not find file for the medium '/vol_01/apps_data_01/packer-templates/output-virtualbox-iso/sdb.vdi' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 177 of file VBoxManageDisk.cpp
VBoxManage: error: Invalid UUID or filename "output-virtualbox-iso/sdb.vdi"
2015/08/17 09:43:53 ui:
==> Builds finished but no artifacts were created.
2015/08/17 09:43:53 waiting for all plugin processes to complete...
2015/08/17 09:43:53 /vol_01/apps_data_01/packer/packer-provisioner-shell: plugin process exited
2015/08/17 09:43:53 /vol_01/apps_data_01/packer/packer-builder-virtualbox-iso: plugin process exited
bug buildevirtualbox

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Packer-VB ๋นŒ๋“œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ด์ „์— ์‹คํ–‰ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””์Šคํฌ ๋งŒ๋“ค๊ธฐ packer (์ฆ‰, ๋ณ„๋„์˜ ์Šคํฌ๋ฆฝํŠธ), ์ถœ๋ ฅ ๋””๋ ‰ํ† ๋ฆฌ ์™ธ๋ถ€ :

VBoxManage createhd --filename io1.vdi --size 10000

  • ํŒจ์ปค ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ ํ•ด๋‹น ๋””์Šคํฌ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
"vboxmanage": [
        ["storageattach", "{{.Name}}", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--type", "hdd", "--medium", "io1.vdi"]
    ]
  • ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ƒฅ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. io1.vdi ๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ์ถ”๊ฐ€ vdi ํŒŒ์ผ์ด ์˜ค๋ฅธ์ชฝ ์ถœ๋ ฅ ํด๋”์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ 4 ๋””์Šคํฌ ์„ค์ •์˜ ์Šคํฌ๋ฆฐ ์ƒท์ž…๋‹ˆ๋‹ค.

image

์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์ด ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. Packer ๋นŒ๋“œ ์‹œ๊ฐ„ ๋™์•ˆ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ํฌ๋งท ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒ์„ฑ ํ›„์—๋„ ๋“œ๋ผ์ด๋ธŒ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋˜ํ•œ์ด ๋ฌธ์ œ๋Š” ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค!

๋ชจ๋“  3 ๋Œ“๊ธ€

์žฌ๋ฏธ์žˆ๋Š” ๋ฒ„๊ทธ! ์‹ ๊ณ  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Packer-VB ๋นŒ๋“œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ด์ „์— ์‹คํ–‰ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””์Šคํฌ ๋งŒ๋“ค๊ธฐ packer (์ฆ‰, ๋ณ„๋„์˜ ์Šคํฌ๋ฆฝํŠธ), ์ถœ๋ ฅ ๋””๋ ‰ํ† ๋ฆฌ ์™ธ๋ถ€ :

VBoxManage createhd --filename io1.vdi --size 10000

  • ํŒจ์ปค ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ ํ•ด๋‹น ๋””์Šคํฌ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
"vboxmanage": [
        ["storageattach", "{{.Name}}", "--storagectl", "IDE Controller", "--port", "0", "--device", "1", "--type", "hdd", "--medium", "io1.vdi"]
    ]
  • ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ƒฅ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. io1.vdi ๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ์ถ”๊ฐ€ vdi ํŒŒ์ผ์ด ์˜ค๋ฅธ์ชฝ ์ถœ๋ ฅ ํด๋”์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ 4 ๋””์Šคํฌ ์„ค์ •์˜ ์Šคํฌ๋ฆฐ ์ƒท์ž…๋‹ˆ๋‹ค.

image

์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์ด ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. Packer ๋นŒ๋“œ ์‹œ๊ฐ„ ๋™์•ˆ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ํฌ๋งท ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒ์„ฑ ํ›„์—๋„ ๋“œ๋ผ์ด๋ธŒ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋˜ํ•œ์ด ๋ฌธ์ œ๋Š” ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค!

๊ถ๊ทน์  ์ธ ๋ฌธ์ œ๋Š” ๋ฒ„์ถ”์–ผ ๋ฐ•์Šค์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰