저는 OPNSense(및 일반적으로 FreeBSD)를 처음 사용하고 cloud-init를 사용하여 적어도 내 LAN(vtnet0)에 대한 고정 IP 주소, 루트 비밀번호를 구성하고 결국 사용자 정의 스크립트(또는 셸)를 실행하는 데 관심이 있습니다. 명령)에서. Qemu를 사용하여 OPNsense VM을 생성하여 사용자 지정 구성을 적용합니다.
나는 opnsense github repo가클라우드 초기화 포트, 그래서 설치했습니다.
pkg install net/cloud-init
그런 다음 cloud-init NoCloud의 요구에 따라 사용자 데이터와 메타데이터가 포함된 cidata.iso 이미지를 Qemu에 추가했습니다. 우분투 서버 21과 칼리 리눅스에서 이 파일을 테스트했습니다. 적어도 이러한 운영 체제에서는 정확합니다.)
CDROM이 /dev/cd0이라는 것을 찾아서 설치했습니다.
mkdir -p /media/cdrom
mount -t cd9660 /dev/cd0 /media/cdrom
또한 /etc/fstab을 편집하고 다음 줄을 추가했습니다.
/dev/cd0 /media/cdrom cd9660 ro 0 0
시작 시 자동으로 CDROM을 마운트합니다.
마지막으로 (존재하지 않았기 때문에) 다음 내용으로 /etc/rc.conf를 만들었습니다.
cloudinit_enable="YES"
OPNsense 가상 머신을 다시 시작했습니다.
지금 내가 기대하는 것은 부팅 시 cloud-init가 자동으로 시작된다는 것입니다.
그러나 이런 일이 발생하지 않았습니다. 아마도 뭔가를 구성해야 했기 때문일 것입니다. cloud-init init
터미널을 통해 실행 하면 오류가 발생합니다.
stages.py[WARNING]: Failed to rename devices: Unexpected error while running command.
Command [`ip`, `-6`, `addr`,`show`, `permanent`, `scope`,`global`]
Exit code: -
Reason: [Errno 2] No such file or directory: b`ip`
Stdout: -
Stderr: -
No `init` modules to run under section `cloud_init_modules`
Kali Linux와 Ubuntu Server 모두에서 쉽게 실행됩니다.
이에 대해 몇 가지 질문이 있습니다.
- NoCloud와 함께 cloud-init 포트를 사용하고 구성 파일이 있는 cdrom(cidata)을 사용할 수 있나요? 아니면 OpenStack과 같은 클라우드 서비스에서만 지원되나요?
- 위의 구성이 정확합니까, 아니면 뭔가 빠졌습니까?
- 위와 같은 오류가 발생하는 이유는 무엇입니까? 어떻게 해결할 수 있나요?
이 질문을 게시했습니다.여기, 하지만 답장을 받지 못했습니다.
답변1
저는 cloud-init 지원을 BSD*로 확장하는 작업을 진행 중입니다. 이 버그는 지금쯤 수정되어야 합니다. 왜냐하면 적어도https://github.com/canonical/cloud-init/pull/1779
지금까지 Vultr는 꽤 좋은 지원을 받았습니다. 에서 뭔가가 작동하지 않으면 net/cloud-init
에서 작동할 가능성이 높습니다 net/cloud-init-devel
. 문제가 해결되지 않으면 보고된 문제를 해결해 드리겠습니다. cloud-init는 버그 추적기를 Launchpad에서 GitHub로 옮겼으므로 더 쉽게 기여할 수 있습니다.
*대부분 FreeBSD입니다. FreeBSD 재단이 후원하는 프로젝트이고 저는 FreeBSD에 가장 익숙합니다.)