현재 Landscape의 "OpenStack Beta"옵션을 사용하여 MAAS 설정에 OpenStack을 배포합니다. “가용성 영역 구성”에서 1 번의 실패로 98 %의 완료를 얻었습니다. 내 설정은 KVM, Open vSwitch를 사용했으며 현재는 개체 및 블록 스토리지 모두에 Ceph를 사용합니다. 조경 머신 에서 /var/log/landscape/job-handler-1.log 를 보면 100 개가 넘는 오류가 표시됩니다.
2015-03-05 21:18:38 '_get_nova_info'에 대한 INFO 루트 RetryingCall이 실패하여 103 시간 더 시도 : 2015-03-05 21:18:38 INFO root Traceback : : 4 개의 노바 컴퓨팅 유닛
/ usr 누락 /lib/python2.7/threading.py:783:__bootstrap
/usr/lib/python2.7/threading.py:810:__bootstrap_inner
/usr/lib/python2.7/threading.py:763:run
--- < 예외 발견 >> ---
/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py:191:_worker
/usr/lib/python2.7/dist-packages/twisted/python/context. py : 118 : callWithContext
/usr/lib/python2.7/dist-packages/twisted/python/context.py:81:callWithContext
/usr/lib/python2.7/dist-packages/storm/twisted/transact.py : 76 : _ 랩
/ opt / 정식 / 풍경 / 정식 / 풍경 / 모델 /openstack/jobs.py:751:_get_nova_info
참고 : 디버깅을 위해 print 문을 추가 했으므로 jobs.py의 줄 번호가 꺼져 있습니다. 그것은 # 741 행 근처의 _get_nova_info () 함수의 주장입니다 (메모리가 제공되는 경우). 그렇습니다. 나는 오늘 신뢰할 수있는 풍경 ppa에서 최신 버전의 풍경을 사용하고 있습니다.
그래서 / opt_canonical / landscape / canonical / landscape / model / openstack / jobs.py 의 _get_nova_info () 함수를 수정 하여 nova_compute_hostnames 의 길이를 인쇄하고 0을 얻었습니다 . 그래서 나는 그것을 /opt/canonical/landscape/canonical/landscape/model/openstack/region.py 의 get_nova_compute_hostnames ()에 쫓았 고 self.juju_environment.get_computer_ids (). count () 도 0 이라는 것을 알았습니다 . 그래서 self.juju_environment.has_computers () 에 대한 호출을 추가하고 false를 얻었습니다 . 그럼 난 도망 self.juju_environment.get_juju_home ()를 얻은/ var / lib / landscape / juju-homes / 20 . (예, 이것은 조경 상자의 두 번째 재 구축에 대한 20 번째 시도이며, 나는 잠시 동안 이것에있었습니다). 그래서 나는 위에서 언급 한 주주 가정을 활용하여 주주 지위 를 운영 했으며 모두 잘 보였습니다. 보류중인 또는 오류 상태가 아닌 5 개의 시스템 및 서비스가 모두 시작되었습니다. (노바 컴퓨팅 노드 4 개 포함) 아이디어가 있습니까? 나는 조경, MAAS, JUJU 및 파이썬에 다소 익숙하지 않으므로 디버깅이 약간 느립니다.
업데이트 1 :
요청에 따라 2 개의 로그 (내 집은 # 23이지만) juju status 및 broker.log가 있습니다. 이제 아래의 broker.log 코드 조각에 따라 내 문제가 무엇인지 알고 있습니다. MAAS 시스템이 내 풍경 LXC에 DHCP 주소를 제공하고 있지만 내 풍경 LXC는 MAAS에서 프로비저닝하지 않았기 때문에 MAAS 제어 DNS에 없습니다. 따라서 프로비저닝 된 머신은 이름으로 Landscape Server에 연결할 수 없습니다.
따라서 관련 질문으로 이어집니다. 프로비저닝되지 않은 (또는 MAAS 제어하에있는) 머신으로 MAAS가 DNS를 자동 업데이트하도록하는 좋은 방법이 있습니까? 그렇지 않으면 DHCP 범위 밖의 고정 IP를 제공하고 수동으로 DNS를 설정해야합니다.
2015-03-06 17 : 09 : 50,665 INFO [MainThread] 브로커가 config /etc/landscape/client.conf로 시작되었습니다.
2015-03-06 17 : 09 : 52,382 INFO [MainThread] https : // landscape로 긴급 메시지 교환 시작 / 메시지 시스템 .
2015-03-06 17 : 09 : 52,389 오류 [PoolThread-twisted.internet.reactor-1] https : // landscape / message-system 에서 서버에 연결하는 동안 오류가 발생했습니다 .
역 추적 (가장 최근 호출) :
파일 "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", 71 행, 교환
message_api)
파일 "/usr/lib/python2.7/ dist-packages / landscape / broker / transport.py ", 45 행, _curl
헤더 = 헤더, cainfo = self._pubkey, curl = curl)
가져 오기에서 109 행의 "/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py"파일
PyCurlError (e.args [0], e.args 1 )
PyCurlError : Error 6 : Could 호스트를 확인하지 않음 : landscape
2015-03-06 17 : 09 : 52,390 정보 [MainThread] 메시지 교환에 실패했습니다.
2015-03-06 17 : 09 : 52,391 정보 [MainThread] 메시지 교환이 0.01에서 완료되었습니다.
업데이트 2 :
OpenStack / Landscape의 기능을 보여주기 위해 6 대의 컴퓨터 (5 개의 노드와 1 개의 컨트롤러) 만 제공되었으므로 가로 설정 전용 시스템을 사용할 수 없으므로 설정이 약간 제한됩니다. 내가 사용하던 풍경 - 서버 빠른 A의 LXC을 나는 빨리 그것을 멀리 날려 신선한 시작할 수 있도록 내 MAAS 컨트롤러.
그래서 가로 설정을 중단하고 LXC를 고정 IP로 설정 한 다음 DNS (MAAS에서 제어)를 수정하여 가로 서버에 대한 고정 DNS 항목을 갖습니다. 그런 다음 위에서 언급 한 landscape-server-quickstart 방법을 사용하여 LXC에 Landscape Dedicated Server를 설치했습니다.
이 재설치 후 (주로 모든 디버그 엉망을 제거하기 위해) 마침내 풍경을 통해 OpenStack을 설치할 수있었습니다. 감사.