Juju bloccato nello stato "in sospeso" quando si utilizza LXC [chiuso]


8

Quindi sto cercando di iniziare con Juju e ho provato a farlo localmente usando LXC.

Ho seguito le istruzioni qui: Come configuro juju per l'uso locale?

Purtroppo questo non sembra funzionare per me.

lo stato mostra quanto segue:

$ juju status
machines:
  0:
    agent-state: running
    dns-name: localhost
    instance-id: local
    instance-state: running
services:
  mysql:
    charm: cs:precise/mysql-1
    relations:
      db:
      - wordpress
    units:
      mysql/0:
        agent-state: pending
        machine: 0
        public-address: null
  wordpress:
    charm: cs:precise/wordpress-0
    exposed: true
    relations:
      db:
      - mysql
    units:
      wordpress/0:
        agent-state: pending
        machine: 0
        open-ports: []
        public-address: null
2012-05-10 14:09:38,155 INFO 'status' command finished successfully

Come puoi vedere lo stato agente è "in sospeso" e non esiste un indirizzo pubblico da cui sia possibile accedere al sito appena creato. Mi sto perdendo qualcosa qui?

AGGIORNAMENTO: Ho provato a distruggere l'ambiente e a fare di nuovo tutto (più volte). Questo è l'output per debug-log:

~$ juju debug-log 
2012-05-11 08:50:23,790 INFO Enabling distributed debug log.
2012-05-11 08:50:23,806 INFO Tailing logs - Ctrl-C to stop.
2012-05-11 08:50:42,338 Machine:0: juju.agents.machine DEBUG: Units changed old:set([]) new:set(['mysql/0'])
2012-05-11 08:50:42,339 Machine:0: juju.agents.machine DEBUG: Starting service unit: mysql/0 ...
2012-05-11 08:50:42,459 Machine:0: unit.deploy DEBUG: Downloading charm cs:precise/mysql-1 to /home/andre/.juju/data/andre-local/charms
2012-05-11 08:50:42,620 Machine:0: unit.deploy DEBUG: Using <juju.machine.unit.UnitContainerDeployment object at 0x9c54b6c> for mysql/0 in /home/andre/.juju/data/andre-local
2012-05-11 08:50:42,648 Machine:0: unit.deploy DEBUG: Starting service unit mysql/0...
2012-05-11 08:50:42,649 Machine:0: unit.deploy DEBUG: Creating master container...
2012-05-11 08:54:33,992 Machine:0: unit.deploy DEBUG: Created master container andre-local-0-template
2012-05-11 08:54:33,993 Machine:0: unit.deploy INFO: Creating container mysql-0...
2012-05-11 08:56:18,760 Machine:0: unit.deploy INFO: Container created for mysql/0
2012-05-11 08:56:19,466 Machine:0: unit.deploy DEBUG: Charm extracted into container
2012-05-11 08:56:19,569 Machine:0: unit.deploy DEBUG: Starting container...
2012-05-11 08:56:22,707 Machine:0: unit.deploy INFO: Started container for mysql/0
2012-05-11 08:56:22,707 Machine:0: unit.deploy INFO: Started service unit mysql/0
2012-05-11 08:56:23,012 Machine:0: juju.agents.machine DEBUG: Units changed old:set(['mysql/0']) new:set(['wordpress/0', 'mysql/0'])
2012-05-11 08:56:23,039 Machine:0: juju.agents.machine DEBUG: Starting service unit: wordpress/0 ...
2012-05-11 08:56:23,154 Machine:0: unit.deploy DEBUG: Downloading charm cs:precise/wordpress-0 to /home/andre/.juju/data/andre-local/charms
2012-05-11 08:56:23,396 Machine:0: unit.deploy DEBUG: Using <juju.machine.unit.UnitContainerDeployment object at 0x9c519cc> for wordpress/0 in /home/andre/.juju/data/andre-local
2012-05-11 08:56:23,620 Machine:0: unit.deploy DEBUG: Starting service unit wordpress/0...
2012-05-11 08:56:23,621 Machine:0: unit.deploy INFO: Creating container wordpress-0...
2012-05-11 08:58:24,739 Machine:0: unit.deploy INFO: Container created for wordpress/0
2012-05-11 08:58:25,163 Machine:0: unit.deploy DEBUG: Charm extracted into container
2012-05-11 08:58:25,397 Machine:0: unit.deploy DEBUG: Starting container...
2012-05-11 08:58:27,982 Machine:0: unit.deploy INFO: Started container for wordpress/0
2012-05-11 08:58:27,983 Machine:0: unit.deploy INFO: Started service unit wordpress/0

Questo è il risultato per il comando status (con flag dettagliato):

~$ juju -v status
2012-05-11 08:51:53,464 DEBUG Initializing juju status runtime
2012-05-11 08:51:53,625:4030(0xb7345b00):ZOO_INFO@log_env@658: Client environment:zookeeper.version=zookeeper C client 3.3.5
2012-05-11 08:51:53,625:4030(0xb7345b00):ZOO_INFO@log_env@662: Client environment:host.name=andre-ufo
2012-05-11 08:51:53,625:4030(0xb7345b00):ZOO_INFO@log_env@669: Client environment:os.name=Linux
2012-05-11 08:51:53,625:4030(0xb7345b00):ZOO_INFO@log_env@670: Client environment:os.arch=3.2.0-24-generic-pae
2012-05-11 08:51:53,625:4030(0xb7345b00):ZOO_INFO@log_env@671: Client environment:os.version=#37-Ubuntu SMP Wed Apr 25 10:47:59 UTC 2012
2012-05-11 08:51:53,626:4030(0xb7345b00):ZOO_INFO@log_env@679: Client environment:user.name=andre
2012-05-11 08:51:53,626:4030(0xb7345b00):ZOO_INFO@log_env@687: Client environment:user.home=/home/andre
2012-05-11 08:51:53,626:4030(0xb7345b00):ZOO_INFO@log_env@699: Client environment:user.dir=/home/andre
2012-05-11 08:51:53,626:4030(0xb7345b00):ZOO_INFO@zookeeper_init@727: Initiating client connection, host=192.168.122.1:41779 sessionTimeout=10000 watcher=0xb7780620 sessionId=0 sessionPasswd=<null> context=0x9242ee8 flags=0
2012-05-11 08:51:53,627:4030(0xb6b90b40):ZOO_INFO@check_events@1585: initiated connection to server [192.168.122.1:41779]
2012-05-11 08:51:53,649:4030(0xb6b90b40):ZOO_INFO@check_events@1632: session establishment complete on server [192.168.122.1:41779], sessionId=0x1373ae057d90007, negotiated timeout=10000
2012-05-11 08:51:53,651 DEBUG Environment is initialized.
machines:
  0:
    agent-state: running
    dns-name: localhost
    instance-id: local
    instance-state: running
services:
  mysql:
    charm: cs:precise/mysql-1
    relations:
      db:
      - wordpress
    units:
      mysql/0:
        agent-state: pending
        machine: 0
        public-address: null
  wordpress:
    charm: cs:precise/wordpress-0
    relations:
      db:
      - mysql
    units:
      wordpress/0:
        agent-state: pending
        machine: 0
        public-address: null

Puoi modificare la tua domanda e collegare gli esempi che stai seguendo?
Jorge Castro,

Puoi anche aggiungere l'output di 'ps auxf'? Ciò dovrebbe mostrare che il nodo wordpress è ancora in sospeso perché sta ancora installando alcuni dei suoi componenti. Su una connessione lenta con un disco rigido lento e una RAM bassa, possono essere necessari 10 minuti per installare questi nodi.
SpamapS

Esiste uno strumento utile nel ramo juju bzr che ci fornirà alcune informazioni. Puoi afferrarlo usando bzr branch lp:jujue quindi sudo misc/devel-tools/juju-inspect-local-providere quindi anche eseguire sudo lxc-lsed eseguire lo strumento sopra per ciascuna delle immagini elencate, in modo da poter vedere l'output di tutti i registri all'interno dei contenitori.
SpamapS

Risposte:


10

Stavo riscontrando lo stesso errore e, con l'aiuto della brava gente di #juju, sono stato in grado di determinare che l'attivazione del firewall sul computer host stava impedendo a Zookeeper di riconnettersi all'host.

Prova a correre:

sudo ufw disable

e poi:

sudo juju destroy-environment

e poi licenzia le cose. Inoltre, se è la prima volta che esegui il bootstrap di un ambiente sul tuo computer, tieni presente che il completamento del download dell'accesso iniziale richiede del tempo, quindi concedi 15-20 minuti dopo aver distribuito un'unità.

Anche questo è ora un bug aperto , poiché juju dovrebbe gestire questa situazione automaticamente.


2
Disabilitato il firewall, e ha funzionato immediatamente. Spero che abbiano risolto questo bug, mi sento nervoso per disabilitare il mio ufw, ma almeno ora posso sperimentare e giocare con juju fino a quando non avrò un server su cui giocare :)
Andre

3

Se questa è la prima volta che esegui il bootstrap del tuo ambiente locale, ne occorreranno diversi (a seconda del tempo impiegato per scaricare circa 400 MB di dati dell'immagine del server) per creare la prima immagine principale. Nel percorso "data-dir" (definito nel file environment.yaml) è presente un machine-agent.logprocesso che descrive questo processo:

2012-05-09 10:04:03,848: juju.agents.machine@INFO: Machine agent started id:0
2012-05-09 10:05:08,175: juju.agents.machine@DEBUG: Units changed old:set([]) new:set(['mysql/0'])
2012-05-09 10:05:08,176: juju.agents.machine@DEBUG: Starting service unit: mysql/0 ...
2012-05-09 10:05:08,222: unit.deploy@DEBUG: Downloading charm cs:precise/mysql-1 to /home/marco/.juju/local/marco-local/charms
2012-05-09 10:05:08,314: unit.deploy@DEBUG: Using <juju.machine.unit.UnitContainerDeployment object at 0x9cccbec> for mysql/0 in /home/marco/.juju/local/marco-local
2012-05-09 10:05:08,375: unit.deploy@DEBUG: Starting service unit mysql/0...
2012-05-09 10:05:08,376: unit.deploy@DEBUG: Creating master container...

Alcuni istanti dopo vedrai quanto segue:

2012-05-09 10:09:40,699: unit.deploy@DEBUG: Created master container marco-local-0-template
2012-05-09 10:09:40,699: unit.deploy@INFO: Creating container mysql-0...
2012-05-09 10:10:31,429: unit.deploy@INFO: Container created for mysql/0
2012-05-09 10:10:31,483: unit.deploy@DEBUG: Charm extracted into container

Quali dettagli che alcuni minuti dopo è stato creato il contenitore principale.

Infine, non tutti i boostrap "locali" funzionano, prova a eseguire juju destroy-environmente quindi rieseguijuju bootstrap


Grazie per la risposta. Sto riavviando il processo e tenendo d'occhio i registri per vedere cosa succede.
Andre

Dopo juju destroy-environment, devo ridistribuire gli incantesimi? O sono essenzialmente già "installati"?
Andre

@Andre Dovrai ridistribuire. Fare un ambiente distrutto eliminerà essenzialmente l'ambiente e tutto ciò che era in esecuzione su di esso.
Marco Ceppi

Ancora sfortunatamente purtroppo. L'ho provato più volte e ho aspettato che tutto finisse. Ho aggiornato il mio post originale con lo stato dettagliato e il registro di debug.
Andre,

1

Ho avuto lo stesso problema. Ho trovato master-customize.logerrori apt-get a causa di pacchetti corrotti in apt-cacher-ng (non sono sicuro che penso che sia successo perché il mio laptop è stato sospeso durante il download). Sono stato in grado di correggere il problema visitando http://localhost:3142/acng-report.html, controllando:

  • Convalida per nome file E directory file (non consigliato),
  • quindi convalida il contenuto del file tramite checksum (SLOW), rilevando anche i file corrotti,
  • quindi tronca immediatamente i file danneggiati.

e facendo clic su Avvia scansione e / o scadenza. Quindi sono stato in grado di distruggere l'ambiente juju e ridistribuirlo con successo.


0

Invece di disabilitare ufw, si potrebbe provare a consentire la rete di juju (libvirt) con:

sudo ufw allow from `ip addr show virbr0|tail -n 1 |cut -d' ' -f 6` to any

Funziona nel mio caso su Ubuntu 12.04

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.