6

Questa è una domanda che riguarda principalmente lo Chef. Quando si esaminano i nodi di controllo all'interno di Amazon VPC con Chef, mi imbatto in alcune difficoltà, principalmente che un nodo che non ha un indirizzo IP esterno non è facilmente raggiungibile dallo chef.Come avviare un'istanza di Amazon ec2 in VPC utilizzando Chef?

sono andato attraverso il tutorial di base per lo scenario # 2 http://docs.amazonwebservices.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html#Case2_Launch_NAT

Tuttavia, questa volte su questo:

knife ec2 server create -N app-server-1 -f m1.small -i rails-quick-start.pem -r "role[base]" -G WebServerSG -S rails-quick-start -x ubuntu -s subnet-580d7e30 -y -I ami-073ae46e -Z us-east-1d 

Che cosa sto facendo di sbagliato?

risposta

1

La soluzione era impostare un tunnel e tunnelare ssh su qualche porta di un computer visibile pubblicamente a tutti gli altri computer nel cloud. Quindi il mio bilanciamento del carico serve il traffico http sul socket 80, è accessibile tramite il socket 22 e utilizza i socket 2222, 2223, 2224, ... per eseguire il tunnel ssh verso istanze di cloud non pubbliche. Su di bilanciamento del carico (o qualsiasi istanza pubblica) eseguire:

ncat --sh-exec "ncat PRIVATE.SUBNET.IP 22" -l 2222 & 

ad esempio:

ncat --sh-exec "ncat 10.0.1.1 22" -l 2222 & 
1

Affinché il coltello sia in grado di parlare con il server, potrebbe essere necessario configurare una VPN. Se il tuo VPC è già connesso alla tua rete locale tramite VPN, allora dovrebbe funzionare ma, in caso contrario, potresti voler eseguire un server OpenVPN o qualcosa di simile.

È inoltre possibile impostare i server in altri due modi:

  1. creare un'istanza EC2 e lasciarlo boot-up. Quindi lanciare il coltello contro di esso.
  2. Creare un'istanza EC2 con i dati utente corretti e disporre di cloud-init (se si sta eseguendo dire ubuntu con include cloud-init).
+0

Sto provando nello specifico scenario 2 anche se ... C'è un modo per utilizzare Chef con Amazon VPC e nessun hardware aggiuntivo, solo NAT e port forwarding? –

+0

Se i tuoi server possono raggiungere Internet, dovresti stare bene. In caso contrario, è necessario configurare un server Chef all'interno del VPC e puntare lo script di cloud-init su di esso. I VPC possono essere piuttosto complicati e tutto dipende dal fatto che i server si trovino in una sottorete "pubblica" o in una sottorete "privata". –

0

Ci deve essere un modo per associare un IP Elastic all'istanza al fine di ottenere un IP pubblico facile accesso e quindi eseguire tutte le attività di bootstrap e SSH tramite EIP.

+1

Non proprio, è possibile configurare le istanze senza assegnare loro IP pubblici. Uno dei motivi per l'utilizzo di VPC in primo luogo è di non avere indirizzi pubblici su tutti i nodi. –