Juju utknął w stanie „w toku” podczas korzystania z LXC [zamknięte]

8

Próbuję więc zacząć od Juju i próbuję zrobić to lokalnie za pomocą LXC.

Postępowałem zgodnie z instrukcjami tutaj: Jak skonfigurować Juju do użytku lokalnego?

Niestety nie wydaje mi się to działać.

status pokazuje:

$ 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

Jak widać, stan agenta „oczekuje” i nie ma adresu publicznego, pod którym można uzyskać dostęp do nowo utworzonej witryny. Czy coś mi umyka?

AKTUALIZACJA: Próbowałem zniszczyć środowisko i robić wszystko ponownie (wiele razy). Oto dane wyjściowe dziennika debugowania:

~$ 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

Oto wynik polecenia statusowego (z pełną flagą):

~$ 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
źródło
Czy możesz edytować swoje pytanie i połączyć przykłady, które podążasz?
Jorge Castro
Czy możesz również dodać wynik „ps auxf”? Powinno to pokazać, że węzeł wordpress wciąż czeka, ponieważ wciąż instaluje niektóre ze swoich komponentów. W przypadku wolnego połączenia z wolnym dyskiem twardym i niską pamięcią RAM instalacja tych węzłów może potrwać ponad 10 minut.
SpamapS
W gałęzi juju bzr znajduje się pomocne narzędzie, które dostarczy nam trochę informacji. Czy możesz go pobrać za pomocą, bzr branch lp:jujua następnie sudo misc/devel-tools/juju-inspect-local-provideruruchomić sudo lxc-lsi uruchomić powyższe narzędzie dla każdego z wymienionych obrazów, dzięki czemu możemy zobaczyć dane wyjściowe wszystkich dzienników wewnątrz kontenerów.
SpamapS

Odpowiedzi:

10

Wystąpił ten sam błąd i przy pomocy dobrych ludzi z #juju udało mi się ustalić, że włączenie zapory sieciowej na maszynie hosta blokuje zookeeperowi ponowne połączenie z hostem.

Spróbuj uruchomić:

sudo ufw disable

i wtedy:

sudo juju destroy-environment

a następnie odpalić rzeczy z powrotem. Ponadto, jeśli po raz pierwszy ładujesz środowisko na swoim komputerze, pamiętaj, że pobranie początkowego uroku zajmuje trochę czasu, więc daj mu 15-20 minut po wdrożeniu jednostki.

Jest to teraz także otwarty błąd , ponieważ juju powinien automatycznie obsługiwać tę sytuację.

nathwill
źródło
2
Wyłączono zaporę i zadziałała natychmiast. Mam nadzieję, że rozwiążą ten błąd, denerwuję się, że mogę wyłączyć mój ufw, ale przynajmniej mogę teraz eksperymentować i grać z juju, dopóki nie będę mieć serwera do gry :)
Andre
3

Jeśli po raz pierwszy ładujesz środowisko lokalne, zbudowanie pierwszego obrazu głównego zajmie kilka (w zależności od tego, ile czasu zajmuje pobranie około 400 MB danych obrazu serwera). W ścieżce „data-dir” (zdefiniowanej w pliku environment.yaml) znajduje się machine-agent.logopis opisujący ten proces:

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...

Kilka chwil później zobaczysz:

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

Które szczegóły, że kilka minut później utworzono kontener główny.

Wreszcie, nie każde „lokalne” boostrap działa, spróbuj uruchomić, juju destroy-environmenta następnie uruchom ponowniejuju bootstrap

Marco Ceppi
źródło
Dziękuję za odpowiedź. Ponownie uruchamiam proces i sprawdzam dzienniki, aby zobaczyć, co się stanie.
Andre
Czy po zniszczeniu środowiska juju muszę ponownie wdrożyć uroki? A może w zasadzie są już „zainstalowane”?
Andre
@Andre Musisz ponownie wdrożyć. Wykonanie zniszczenia środowiska zasadniczo usunie środowisko i wszystko, co na nim działało.
Marco Ceppi
Niestety nadal nie ma szczęścia. Próbowałem tego wiele razy i czekałem, aż wszystko się skończy. Zaktualizowałem swój pierwotny post ze szczegółowym statusem i dziennikiem debugowania.
Andre
1

Miałem ten sam problem. Znalazłem master-customize.logawarie apt-get z powodu uszkodzonych pakietów w apt-cacher-ng (nie jestem pewien, chyba trochę tak się stało, ponieważ mój laptop zawiesił się podczas pobierania). Byłem w stanie rozwiązać problem, odwiedzając http://localhost:3142/acng-report.html, sprawdzając:

  • Sprawdź poprawność według nazwy pliku ORAZ katalogu plików (niezalecane),
  • następnie sprawdź zawartość pliku za pomocą sumy kontrolnej (SLOW), wykrywając również uszkodzone pliki,
  • a następnie natychmiast obetnij uszkodzone pliki.

i klikając Rozpocznij skanowanie i / lub wygasanie. Potem udało mi się zniszczyć środowisko juju i pomyślnie go wdrożyć.

Dan Nuffer
źródło
0

Zamiast wyłączać ufw, można spróbować zezwolić na sieć juju (libvirt) za pomocą:

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

Działa w moim przypadku na Ubuntu 12.04

suside
źródło