Juju ficou em estado "pendente" ao usar o LXC [fechado]

8

Então, estou tentando começar o Juju e tentei fazer isso localmente usando o LXC.

Segui as instruções aqui: Como configurar o juju para uso local?

Infelizmente, isso não parece funcionar para mim.

O status mostra o seguinte:

$ 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

Como você pode ver, o estado do agente está "pendente" e não há nenhum endereço público onde eu possa acessar o site recém-criado. Estou faltando alguma coisa aqui?

ATUALIZAÇÃO: Tentei destruir o ambiente e fazer tudo de novo (várias vezes). Esta é a saída para 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

Este é o resultado do comando status (com sinalizador detalhado):

~$ 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
Andre
fonte
Você pode editar sua pergunta e vincular os exemplos que você está seguindo?
Jorge Castro
Você também pode adicionar a saída de 'ps auxf'? Isso deve mostrar que o nó wordpress ainda está pendente porque ainda está instalando alguns de seus componentes. Em uma conexão lenta com um disco rígido lento e com pouca RAM, pode levar mais de 10 minutos para instalar esses nós.
SpamapS
Existe uma ferramenta útil no ramo juju bzr que nos fornecerá algumas informações. Você pode pegá-lo usando bzr branch lp:jujue, em seguida sudo misc/devel-tools/juju-inspect-local-provider, também executar sudo lxc-lse executar a ferramenta acima para cada uma das imagens listadas, para que possamos ver a saída de todos os logs dentro dos contêineres.
SpamapS

Respostas:

10

Eu estava enfrentando o mesmo erro e, com a ajuda do pessoal de #juju, consegui determinar que o meu firewall ligado na máquina host estava impedindo o tratador de conectar-se novamente ao host.

Tente executar:

sudo ufw disable

e depois:

sudo juju destroy-environment

e depois atire novamente. Além disso, se é a primeira vez que você inicializa um ambiente em sua máquina, observe que leva algum tempo para que o download inicial do encanto seja concluído; aguarde 15 a 20 minutos depois de implantar uma unidade.

Agora isso também é um bug aberto , pois o juju deve lidar com essa situação automaticamente.

nathwill
fonte
2
Desabilitou o firewall e funcionou imediatamente. Espero que se este erro resolvido, faz-me sentir nervoso para desativar minha ufw, mas pelo menos agora eu posso experimentar e brincar com juju até o momento em que eu tenho um servidor para jogar on :)
Andre
3

Se for a primeira vez que você inicializa o ambiente local, serão necessários vários (dependendo de quanto tempo leva para baixar cerca de 400 MB de dados da Imagem do servidor) para criar a primeira imagem principal. No seu caminho "data-dir" (definido no arquivo environment.yaml), existe um machine-agent.logque descreve esse 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...

Alguns momentos depois, você verá o seguinte:

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

Que detalha que, alguns minutos depois, o contêiner mestre foi criado.

Por fim, nem todo boostrap "local" funciona, tente executar juju destroy-environmente execute novamentejuju bootstrap

Marco Ceppi
fonte
Obrigado pela resposta. Estou reiniciando o processo e vigiando os logs para ver o que acontece.
1013 Andre Andre
Após o juju destroy-environment, tenho que reimplementar os encantos? Ou eles já estão 'instalados'?
1013 Andre Andre
@ André Você terá que reimplementar. Fazer um ambiente de destruição excluirá essencialmente o ambiente e tudo o que estava sendo executado nele.
Marco Ceppi
Ainda sem sorte, infelizmente. Eu tentei isso várias vezes e esperei para garantir que tudo terminasse. Atualizei minha postagem original com o status detalhado e o log de depuração.
11114 Andre
1

Eu tive esse mesmo problema. Eu encontrei nas master-customize.logfalhas do apt-get devido a pacotes corrompidos no apt-cacher-ng (não tenho certeza se acho que isso aconteceu porque meu laptop foi suspenso durante o download). Consegui corrigir o problema visitando http://localhost:3142/acng-report.html, verificando:

  • Valide pelo nome do arquivo E pelo diretório do arquivo (não recomendado),
  • valide o conteúdo do arquivo através da soma de verificação (SLOW), também detectando arquivos corrompidos,
  • em seguida, trunque os arquivos danificados imediatamente.

e clicando em Iniciar verificação e / ou expiração. Pude destruir o ambiente juju e reimplantá-lo com sucesso.

Dan Nuffer
fonte
0

Em vez de desabilitar o ufw, pode-se tentar permitir a rede juju (libvirt) com:

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

Funciona no meu caso no Ubuntu 12.04

suside
fonte