우리가 관리하는 고객을 위해 서버를 관리하고 프로비저닝할 수 있도록 Foreman을 구현하려고 합니다. 중앙 위치에 Foreman을 설치한 다음 고객 네트워크 중 하나에 Foreman Smart Proxy를 설치했는데 모든 것이 잘 작동합니다(원격 Puppet 에이전트는 내 스마트 프록시에 연결할 수 있고 내 중앙 Foreman 서버는 데이터를 볼 수 있지만 이제 (vCenter를 통해) 새 VM을 프로비저닝하고 싶습니다. 컴퓨팅 리소스 프로필을 설치 foreman-vmware
및 구성하고 VM 템플릿에 대한 항목을 생성했지만 Foreman을 통해 새 호스트를 생성하고 템플릿에서 복제하도록 지시하면 노드를 사용할 수 있을 때까지 기다리면서 중단됩니다. SSH를 통해 구성을 완료했습니다. 내 문제는 Foreman 서버가 새 VM에 연결되지 않는다는 것입니다. 새 VM(Puppet 에이전트가 설치됨)이 내 스마트 프록시에 연결되도록 구성되기를 바랐습니다. 그런 식으로 구성을 마치셨나요?
제가 디자인을 잘못한 걸까요? 나에게 적합한 솔루션을 설계하는 데 도움을 줄 수 있는 사람이 있습니까?
기존 DHCP 및 DNS 서비스를 방해할 수 있으므로 고객 네트워크에 새 DHCP, DNS 및 TFTP 서버를 생성할 수 없습니다.
고마워요, 벤
답변1
tl;dr: 현재는 작동하지 않습니다. SSH 프로비저닝은 감독 서버에서 제공됩니다.
여러 "소규모" 고객을 연결하는 공개/중앙 집중식 Foreman/Puppet 인스턴스가 있는 유사한 구성이 있습니다. 우리의 경우에는 고객 네트워크에 "스마트 프록시"도 설치하지 않았습니다. 고객의 IT 직원은 실제로 최소 CentOS 6.x 설치에 대한 SSH 자격 증명을 나에게 제공했습니다(효과적으로 이미지 배포와 비슷합니까?). Foreman에서는 방금 새 VM을 "Bare Metal"로 생성한 다음 호스트 세부 정보 화면의 "템플릿" 탭에서 종료 스크립트를 복사하여 VM에 붙여넣었습니다(클라이언트 시스템에 SSH로 연결하려면 VPN을 사용해야 했습니다). ). 귀하의 경우 비슷한 작업을 수행할 수 있지만 일반적으로 "수동" 단계는 눈살을 찌푸리게 합니다.
이에 대해 생각하는 동안 제가 가졌던 몇 가지 무작위 아이디어는 다음과 같습니다.
어쩌면 "cloud-init"를 사용하는 방법을 알아낸 다음 감독 서버가 SSH에 연결할 수 없도록 VM을 "프로비저닝"(스크립트 실행)할 수 있을 것입니다. 이것이 ESXi에서 어떻게 작동하는지 잘 모르겠고 "사용자 정의 코드"가 필요할 것 같습니다. :)
아마도 Foreman 서버에 OpenVPN 서버를 설정하고 Foreman 서버에 VPN이 자동으로 연결되도록 이미지를 설정할 수 있습니다. 꼭두각시/감독을 인터넷에 노출할 필요가 없다는 점에서 몇 가지 장점이 있지만 SSH에 대한 호스트의 VPN IP를 알아내려는 데 관련된 일부 사용자 정의 코드가 있을 수 있습니다. 특히 PCI 규격을 준수하려는 일부 고객은 이 문제를 취약점으로 간주할 수도 있습니다.
Foreman 서버가
ssh -t viaHost ssh $HOST_ADDRESS
프로비저닝 프로세스 중에 특정 호스트에 대해 SSH를 수행한 다음 원하는 클라이언트 IP( )에 대해 SSH를 수행하도록 "SSH를 통한" 구성을 허용하는 새 모듈을 생성합니다. 물론 그 길을 가면 스마트 프록시 작업으로 만들 수도 있습니다. 여기서는 감독 서버에서 SSH를 시도하는 대신 스마트 프록시에 요청합니다.
이것들은 모두 잠재적인 해결책이지만, 현재로서는 그 어떤 것도 효과가 없을 것 같습니다. 다음 위치에 일부 기능 요청을 제출하는 것이 좋습니다.http://projects.theforeman.org/projects/foreman/issues
~토미