LINUX.ORG.RU

Сообщения CrazyNickname

 

Ошибка “SSH handshake error” при билде виртуальной машины в vsphere с помощью packer

Фрагмент логов, где происходит ошибка:

2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 [INFO] Waiting for SSH, up to timeout: 2h46m40s
2017/04/06 12:20:29 ui: [1;32m==> vmware-iso: Waiting for SSH to become available...[0m
2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 opening new ssh session
2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 starting remote command: esxcli --formatter csv network vm list
2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 opening new ssh session
2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 starting remote command: esxcli --formatter csv network vm port list -w 16370647
2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 [INFO] Attempting SSH connection...
2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 reconnecting to TCP connection for SSH
2017/04/06 12:20:29 packer: 2017/04/06 12:20:29 handshaking with SSH
2017/04/06 12:20:30 packer: 2017/04/06 12:20:30 handshake error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password keyboard-interactive], no supported methods remain
2017/04/06 12:20:30 packer: 2017/04/06 12:20:30 [DEBUG] SSH handshake err: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password keyboard-interactive], no supported methods remain
2017/04/06 12:20:30 packer: 2017/04/06 12:20:30 [DEBUG] Detected authentication error. Increasing handshake attempts.
2017/04/06 12:20:37 packer: 2017/04/06 12:20:37 [INFO] Attempting SSH connection...
2017/04/06 12:20:37 packer: 2017/04/06 12:20:37 reconnecting to TCP connection for SSH
2017/04/06 12:20:37 packer: 2017/04/06 12:20:37 handshaking with SSH
2017/04/06 12:20:37 packer: 2017/04/06 12:20:37 handshake error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password keyboard-interactive], no supported methods remain
2017/04/06 12:20:37 packer: 2017/04/06 12:20:37 [DEBUG] SSH handshake err: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password keyboard-interactive], no supported methods remain

json-файл:
{
    "variables": {
        "type": "vmware-iso",
        "architecture": "386",
            "name": "alpine",
        "monitor": "vga=788",   
        "remote_type": "esx5",
        "remote_host": "ххх.ххх.ххх.хx",
        "remote_datastore": "ххх",
        "remote_username": "root",
        "remote_password": "qwerty",
        "guest": "otherlinux-64",
        "disk_size": "7000",
        "iso_checksum_type": "md5",
        "iso_url": "alpine.iso",
        "iso_checksum": "204895de634d07e9fd0ead30f1e84010",
        "http_directory" : ".",
        "http_port_min" : "8000",
        "http_port_max" : "9001",       
        "cores": "1",
            "memsize": "512",
            "numvcpus": "1",
        "netname": "LAN-xxx.xxx",
        "virtualDev": "e1000"
    }, 
  "builders": [
    {
      "type": "vmware-iso",
      "communicator": "ssh",
      "boot_command": [
        "root<enter><wait>",
    "ifconfig eth0 up && udhcpc -i eth0<enter><wait5>",
    "wget http://{{ .HTTPIP }}:{{ .HTTPPort }}/answers<enter><wait>",
    "setup-alpine -f answers<enter><wait10>",
    "qwerty<enter><wait10>",
    "qwerty<enter><wait10>",
    "<wait10><wait10><wait10>",
    "<wait10><wait10><wait10>",
    "<wait10><wait10><wait10>"                      
      ],
      "remote_type": "{{user `remote_type`}}",
      "remote_host": "{{user `remote_host`}}",
      "remote_datastore": "{{user `remote_datastore`}}",
      "remote_username": "{{user `remote_username`}}",
      "remote_password": "{{user `remote_password`}}",
      "guest_os_type": "{{user `guest`}}",
      "vm_name": "{{user `name`}}",
    "disk_size": "10000",
    "ssh_username": "root",
    "ssh_password": "qwerty",
    "ssh_port": 22,
      "http_directory": "{{user `http_directory`}}",
      "iso_checksum_type": "{{user `iso_checksum_type`}}",
      "iso_url": "{{user `iso_url`}}",
      "iso_checksum": "{{user `iso_checksum`}}",
      "http_port_min" : "{{user `http_port_min`}}",
      "http_port_max" : "{{user `http_port_max`}}",
      "ssh_wait_timeout": "10000s",
      "keep_registered": true,
      "shutdown_command": "echo 'shutdown -P now' > shutdown.sh; echo 'vagrant'|sudo -S sh 'shutdown.sh'",

      "vmx_data": {
        "cpuid.coresPerSocket": "{{user `cores`}}",
        "memsize": "{{user `memsize`}}",
        "numvcpus": "{{user `numvcpus`}}",
    "ethernet0.networkName": "LAN-xxx.xx",
    "ethernet0.present": "true",
        "ethernet0.virtualDev": "e1000", 
        "ethernet0.startConnected": "true",
        "RemoteDisplay.vnc.webSocket.port": "3900"
      }
    }
    ]
   }
  ],
}]
}

 , ,

CrazyNickname
()

Как запускать программы в virtualenv из внешней среды

Можно ли запускать программы, которые находятся в virtualenv, из внешней среды? Например, у меня на машине не установлена programname, но она установлена в virtualenv. Я не заходя в virtualenv набираю в консоли programname и она выполняется. Каким образом это можно реализовать? Написать скрипт? Или с помощью virtualenvwrapper?

 

CrazyNickname
()

ssh_exchange_identification: read: Connection reset by peer

Запустил на виртуальной машине Ubuntu 14.04. На этой Убунте через vagrant поднял еще одну виртуальную машину (ubuntu/precise32). Выглядит это так: Windows (хост) -> Ubuntu 14.04 (Virtualbox) ->ubuntu/precise32(Virtualbox-vagrant). И когда в Убунте командой vagrant ssh пытаюсь подключится к precise32, то выдает

ssh_exchange_identification: read: Connection reset by peer
Гугл говорит, что в Биосе параметру virtualization нужно присвоить значение enable, чтобы пропала ошибка. Но Убунта, которая является хостом для precise32 сама крутится на VirtualBox и, разумеется, никакого Биоса под ней нет. Как мне быть? Знаю, что это извращенство, но обойтись одной виртуалкой не могу: под Линуксом не работает мой 3G-модем, а под Виндой неадекватно работает Ansible, который нужно тестить. Поэтому доступ в интернет виртуалки получают через NAT через Винду.

Что делать с этой ошибкой?

 ,

CrazyNickname
()

Не выводит текст на дисплей

Возвращаюсь сюда со своим многострадальным экраном. Покурил мануалы, попробовал несколько вариантов схем подключения, причесал программу и все-таки заставил экран нормально инициализироваться: после запуска программы черные квадраты во второй строке исчезают. Но текст он по прежнему не выводит. Перед тем, как идти на форум, решил попробовать аналогичные программы, но написанные другими людьми. Результат тот же: черные сегменты исчезают, а текста нет. Одну из программ выкладываю ниже. Хотя раньше все эти программы вылетали с ошибками, а квадраты оставались: инициализации не было из-за неправильного подключения.

Экран: Winstar WH1602A-YGH-CTK на контроллере S6B0066U (это аналог HD44780, по идее проблем быть не должно).

Код программы:

#import
import RPi.GPIO as GPIO
import time
 
# Define GPIO to LCD mapping
LCD_RS = 7
LCD_E  = 8
LCD_D4 = 25
LCD_D5 = 24
LCD_D6 = 23
LCD_D7 = 18
 
# Define some device constants
LCD_WIDTH = 16    # Maximum characters per line
LCD_CHR = True
LCD_CMD = False
 
LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
 
# Timing constants
E_PULSE = 0.0005
E_DELAY = 0.0005
 
def main():
  # Main program block
  GPIO.setwarnings(False)
  GPIO.setmode(GPIO.BCM)       # Use BCM GPIO numbers
  GPIO.setup(LCD_E, GPIO.OUT)  # E
  GPIO.setup(LCD_RS, GPIO.OUT) # RS
  GPIO.setup(LCD_D4, GPIO.OUT) # DB4
  GPIO.setup(LCD_D5, GPIO.OUT) # DB5
  GPIO.setup(LCD_D6, GPIO.OUT) # DB6
  GPIO.setup(LCD_D7, GPIO.OUT) # DB7
 
  # Initialise display
  lcd_init()
 
  while True:
 
    # Send some test
    lcd_string("Rasbperry Pi",LCD_LINE_1)
    lcd_string("16x2 LCD Test",LCD_LINE_2)
 
    time.sleep(3) # 3 second delay
 
    # Send some text
    lcd_string("1234567890123456",LCD_LINE_1)
    lcd_string("abcdefghijklmnop",LCD_LINE_2)
 
    time.sleep(3) # 3 second delay
 
    # Send some text
    lcd_string("Raspberry",LCD_LINE_1)
    lcd_string("Pi",LCD_LINE_2)
 
    time.sleep(3)
 
  
def lcd_init():
  # Initialise display
  lcd_byte(0x33,LCD_CMD) # 110011 Initialise
  lcd_byte(0x32,LCD_CMD) # 110010 Initialise
  lcd_byte(0x06,LCD_CMD) # 000110 Cursor move direction
  lcd_byte(0x0C,LCD_CMD) # 001100 Display On,Cursor Off, Blink Off
  lcd_byte(0x28,LCD_CMD) # 101000 Data length, number of lines, font size
  lcd_byte(0x01,LCD_CMD) # 000001 Clear display
  time.sleep(E_DELAY)
 
def lcd_byte(bits, mode):
  # Send byte to data pins
  # bits = data
  # mode = True  for character
  #        False for command
 
  GPIO.output(LCD_RS, mode) # RS
 
  # High bits
  GPIO.output(LCD_D4, False)
  GPIO.output(LCD_D5, False)
  GPIO.output(LCD_D6, False)
  GPIO.output(LCD_D7, False)
  if bits&0x10==0x10:
    GPIO.output(LCD_D4, True)
  if bits&0x20==0x20:
    GPIO.output(LCD_D5, True)
  if bits&0x40==0x40:
    GPIO.output(LCD_D6, True)
  if bits&0x80==0x80:
    GPIO.output(LCD_D7, True)
 
  # Toggle 'Enable' pin
  lcd_toggle_enable()
 
  # Low bits
  GPIO.output(LCD_D4, False)
  GPIO.output(LCD_D5, False)
  GPIO.output(LCD_D6, False)
  GPIO.output(LCD_D7, False)
  if bits&0x01==0x01:
    GPIO.output(LCD_D4, True)
  if bits&0x02==0x02:
    GPIO.output(LCD_D5, True)
  if bits&0x04==0x04:
    GPIO.output(LCD_D6, True)
  if bits&0x08==0x08:
    GPIO.output(LCD_D7, True)
 
  # Toggle 'Enable' pin
  lcd_toggle_enable()
 
def lcd_toggle_enable():
  # Toggle enable
  time.sleep(E_DELAY)
  GPIO.output(LCD_E, True)
  time.sleep(E_PULSE)
  GPIO.output(LCD_E, False)
  time.sleep(E_DELAY)
 
def lcd_string(message,line):
  # Send string to display
 
  message = message.ljust(LCD_WIDTH," ")
 
  lcd_byte(line, LCD_CMD)
 
  for i in range(LCD_WIDTH):
    lcd_byte(ord(message[i]),LCD_CHR)
 
if __name__ == '__main__':
 
  try:
    main()
  except KeyboardInterrupt:
    pass
  finally:
    lcd_byte(0x01, LCD_CMD)
    lcd_string("Goodbye!",LCD_LINE_1)
    GPIO.cleanup()

Схема. Схема.

 ,

CrazyNickname
()

Вывод на текстовый экран с Raspberry Pi

Подключил текстовый LCD по схеме. Как положено загораются нижние сегменты в виде закрашенных квадратов и на этом все. На запуск программы из терминала по рутом никак не реагирует. Если запускать через Python, то пишет ошибку:

 
Traceback (most recent call last):
 File "/home/pi/Desktop/lcd.py", line 107, in <module>
 main()
 File "/home/pi/Desktop/lcd.py", line 36, in main
 GPIO.setup(DISPLAY_E, GPIO.OUT)
RuntimeError: No access to /dev/mem. Try running as root!

 Экспериментировал с доской, резисторами и с пинами (в том числе и в коде). Вот уже почти месяц бьюсь над таким пустяком. Нужно выводить на экран частоту ЦП и температуру.

 Код программы:
import time
import RPi.GPIO as GPIO
import os

DISPLAY_RS = 7
DISPLAY_E = 8
DISPLAY_DATA4 = 25 
DISPLAY_DATA5 = 24
DISPLAY_DATA6 = 23
DISPLAY_DATA7 = 18

DISPLAY_WIDTH = 16 
DISPLAY_LINE_1 = 0x80 
DISPLAY_LINE_2 = 0xC0 
DISPLAY_CHR = True
DISPLAY_CMD = False
E_PULSE = 0.00005
E_DELAY = 0.00005

def get_cpu_temp():
 tempFile = open("/sys/class/thermal/thermal_zone0/temp")
 cpu_temp = tempFile.read()
 tempFile.close()
 return float(cpu_temp)/1000

def get_cpu_speed():
 tempFile = open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq")
 cpu_speed = tempFile.read()
 tempFile.close()
 return float(cpu_speed)/1000


def main():
 GPIO.setmode(GPIO.BCM)
 GPIO.setup(DISPLAY_E, GPIO.OUT)
 GPIO.setup(DISPLAY_RS, GPIO.OUT)
 GPIO.setup(DISPLAY_DATA4, GPIO.OUT)
 GPIO.setup(DISPLAY_DATA5, GPIO.OUT)
 GPIO.setup(DISPLAY_DATA6, GPIO.OUT)
 GPIO.setup(DISPLAY_DATA7, GPIO.OUT)

 display_init()


 lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
 lcd_string("CPU Temp: " + str(round(get_cpu_temp(), 2)))
 lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
 lcd_string("CPU Speed: " + str(round(get_cpu_speed(), 2)))

 GPIO.cleanup()

def display_init():
 lcd_byte(0x33,DISPLAY_CMD)
 lcd_byte(0x32,DISPLAY_CMD)
 lcd_byte(0x28,DISPLAY_CMD)
 lcd_byte(0x0C,DISPLAY_CMD) 
 lcd_byte(0x06,DISPLAY_CMD)
 lcd_byte(0x01,DISPLAY_CMD) 

def lcd_string(message):
 message = message.ljust(DISPLAY_WIDTH," ") 
 for i in range(DISPLAY_WIDTH):
 lcd_byte(ord(message[i]),DISPLAY_CHR)

def lcd_byte(bits, mode):
 GPIO.output(DISPLAY_RS, mode)
 GPIO.output(DISPLAY_DATA4, False)
 GPIO.output(DISPLAY_DATA5, False)
 GPIO.output(DISPLAY_DATA6, False)
 GPIO.output(DISPLAY_DATA7, False)
 if bits&0x10==0x10:
 GPIO.output(DISPLAY_DATA4, True)
 if bits&0x20==0x20:
 GPIO.output(DISPLAY_DATA5, True)
 if bits&0x40==0x40:
 GPIO.output(DISPLAY_DATA6, True)
 if bits&0x80==0x80:
 GPIO.output(DISPLAY_DATA7, True)
 time.sleep(E_DELAY) 
 GPIO.output(DISPLAY_E, True) 
 time.sleep(E_PULSE)
 GPIO.output(DISPLAY_E, False) 
 time.sleep(E_DELAY) 
 GPIO.output(DISPLAY_DATA4, False)
 GPIO.output(DISPLAY_DATA5, False)
 GPIO.output(DISPLAY_DATA6, False)
 GPIO.output(DISPLAY_DATA7, False)
 if bits&0x01==0x01:
 GPIO.output(DISPLAY_DATA4, True)
 if bits&0x02==0x02:
 GPIO.output(DISPLAY_DATA5, True)
 if bits&0x04==0x04:
 GPIO.output(DISPLAY_DATA6, True)
 if bits&0x08==0x08:
 GPIO.output(DISPLAY_DATA7, True)
 time.sleep(E_DELAY) 
 GPIO.output(DISPLAY_E, True) 
 time.sleep(E_PULSE)
 GPIO.output(DISPLAY_E, False) 
 time.sleep(E_DELAY) 

if __name__ == '__main__':
 main()

 ,

CrazyNickname
()

RSS подписка на новые темы