A instalação do Openstack falha

0

Estou tentando instalar o OpenStack usando o lançamento do Ubunutu 15.04. Eu instalei a edição do servidor em um servidor HP ProLiant com 4 CPUs, discos RAID de 2 TB, 20 GB de memória e presumi que isso seria uma instalação fácil.

Eu tenho tentado fazer com que o material do MAAS funcione por dois dias, mas nunca consegui registrar nenhum nó. Eu acho que isso é devido a minhas outras máquinas não tem suporte Wake-on-LAN, mas isso é provavelmente outro problema.

Então, eu continuei instalando o OpenStack neste servidor. A instalação do pacote correu bem, mas ao executar o script de instalação, ele falha com o seguinte erro:

root@linux1:~# openstack-install 
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.4/logging/__init__.py", line 980, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2022' in position 7: ordinal not in range(128)
Call stack:
  File "/usr/bin/openstack-install", line 253, in <module>
    install.start()
  File "/usr/share/openstack/cloudinstall/install.py", line 152, in start
    'Create a new Openstack Password', self._save_password)
  File "/usr/share/openstack/cloudinstall/gui.py", line 673, in show_password_input
    widget = PasswordInput(title, cb)
  File "/usr/share/openstack/cloudinstall/ui/__init__.py", line 232, in __init__
    self.show()
  File "/usr/share/openstack/cloudinstall/ui/dialog.py", line 49, in show
    w = self._build_widget()
  File "/usr/share/openstack/cloudinstall/ui/dialog.py", line 93, in _build_widget
    self.input_lbox))
Message: 'Num items: 2, items: <ListBox selectable box widget>'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.4/logging/__init__.py", line 980, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2022' in position 7: ordinal not in range(128)
Call stack:
  File "/usr/share/openstack/cloudinstall/utils.py", line 63, in global_exchandler
    log.debug("".join(tb_list))
Message: 'Traceback (most recent call last):\n  File "/usr/bin/openstack-install", line 253, in <module>\n    install.start()\n  File "/usr/share/openstack/cloudinstall/install.py", line 154, in start\n    self.loop.run()\n  File "/usr/share/openstack/cloudinstall/ev.py", line 116, in run\n    self.loop.run()\n  File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 274, in run\n    self.screen.run_wrapper(self._run)\n  File "/usr/lib/python3/dist-packages/urwid/raw_display.py", line 268, in run_wrapper\n    return fn()\n  File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 314, in _run\n    self.draw_screen()\n  File "/usr/lib/python3/dist-packages/urwid/main_loop.py", line 566, in draw_screen\n    self.screen.draw_screen(self.screen_size, canvas)\n  File "/usr/lib/python3/dist-packages/urwid/raw_display.py", line 770, in draw_screen\n    self._term_output_file.write(l)\nUnicodeEncodeError: \'ascii\' codec can\'t encode character \'\u250c\' in position 0: ordinal not in range(128)\n'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.4/logging/__init__.py", line 980, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2022' in position 7: ordinal not in range(128)
Call stack:
  File "/usr/share/openstack/cloudinstall/utils.py", line 91, in cleanup
    log.info("Cleanup, saving latest config object.")
Message: 'Cleanup, saving latest config object.'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.4/logging/__init__.py", line 980, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2022' in position 7: ordinal not in range(128)
Call stack:
  File "/usr/share/openstack/cloudinstall/utils.py", line 97, in cleanup
    log.debug('Attempting to reset the terminal')
Message: 'Attempting to reset the terminal'
Arguments: ()
</code>

I thought this problem was cased by a bad locale, but I don't think this is the case:
<code>
root@linux1:~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

Eu tentei entender qual é o problema, mas não consigo encontrar nenhum motivo. Esta é uma nova instalação, então presumo que funcionaria sem problemas.

Alguém?

    
por Johan Landerholm 18.05.2015 / 19:27

1 resposta

1

Você tem mais variáveis de ambiente de localidade definidas do que você realmente precisa. LANG é um substituto para quando nenhuma variável LC* está configurada e LC_ALL substitui todas as outras.

Portanto, no seu caso, LC_ALL=C está substituindo LANG=en_US.UTF-8 e todos os outros. O instalador precisa do UTF-8. Não tenho certeza de qual variável LC_* específica usa, provavelmente várias delas.

Você deve ser capaz de corrigir isso definindo apenas LANG=en_US.UTF-8 e certificando-se de que todos os outros não estão definidos, ou definindo LC_ALL=en_US.UTF-8 e os outros não serão importantes. Se você puder desfazê-las, isso ajudaria a confusão futura, mas isso deve funcionar de qualquer forma.

Para mais informações do que você provavelmente quer sobre tudo isso, consulte a seção "Variáveis de internacionalização" da especificação do UNIX Capítulo de variáveis de ambiente , e a página de manual locale (7) .

    
por Mike McCracken 18.05.2015 / 23:47

Tags