2014-04-23 1 views
10

현재 CoreOS를 다루고 있으며 전반적인 아이디어와 개념을 가지고 있다고 생각합니다. 내가 아직 얻지 못한 한가지는 cloud-init입니다.클라우드 초기화는 언제 실행되며 데이터를 어떻게 찾을 수 있습니까?

cloud-init은 CoreOS의 일부 구성을 처리하는 것으로 알고 있습니다. 내가 아직 이해할 수없는 것은 ...

  • 언제 CoreOS를 실행합니까 cloud-init? 처음 부팅 할 때? 부팅 할 때마다? ...?
  • cloud-init은 구성 데이터의 위치를 ​​어떻게 알 수 있습니까? 나는 config-drive이 있다는 것을 보았습니다. 그리고 그것은 완전히 의미가 있습니다 만, 이것이 유일한 방법입니까? user-data 파일의 역할은 정확히 무엇입니까? ...?

답변

15

CoreOS는 부팅 프로세스 중에 cloudinit를 몇 번 실행합니다. 지금 당장이 작업은 부팅 할 때마다 수행되지만 나중에 해당 기능이 변경 될 수 있습니다.

첫 번째 단계는 해당 클라우드에 필요한 네트워킹 및 기타 기능을 설정하기 위해 이미지로 구워지는 OEM 클라우드 초기화입니다. EC2, Rackspace, Google Compute Engine 등은 모두 서로 다른 요구 사항이 있기 때문에이 작업이 완료됩니다. 이 파일들을 볼 수 있습니다 on Github.

두 번째 패스는 공급자별로 다르게 처리되는 사용자 데이터 패스입니다. 예를 들어 EC2를 사용하면 메타 데이터 서비스에 저장된 UI에 자유 형식 텍스트를 입력 할 수 있습니다. EC2 OEM은이 메타 데이터를 읽고 두 번째 클라우드 초기화 실행에 전달하는 장치를 가지고 있습니다. Rackspace/Openstack에서 config-drive는 사용자 데이터가 들어있는 읽기 전용 파일 시스템을 마운트하는 데 사용됩니다. Rackspace 및 Openstack OEM은 해당 위치에서 사용자 데이터 파일을 마운트하고 찾습니다.

CoreOS의 최신 버전에는 PXE 부팅에 사용할 원격 파일을 가져 오는 플래그도 있습니다.

CoreOS distribution docs에도 몇 가지 세부 정보가 있습니다.

+0

굉장한 답변, 감사합니다! 특히 OEM 및 사용자 데이터 전달에 관한 힌트는 매우 유용했습니다. 도와 줘서 고마워! –

+0

그래서 vagrant는 VMM 상자'coreos-cloudinit-vagrant-user.path'에 특별한 유닛을 배송합니다. 그러면 user-config를로드 할 수있는 유일한 기본 단위는 config-drive와'coreos-install'입니다. – bara

관련 문제