Child pages
  • Настраиваем среду разработки под Linux

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Table of Contents

Список ПО

Зачем?

  • Хотелось позаниматься написанием скриптов для SA в удобной IDE.
  • не хотелось подымать еще одну инсталляцию дома для разработки

Что получилось?

  • Локальный репозитарий
  • Warning
    iconfalse
    Возможность работать с удаленной базой установленного нока
  • Info
    iconfalse

    Возможность запускать скрипты через debug-scripts непосредственно из под среды разработки

  • Debugger

Ок, что надо делать?

  1. настраиваем репозитарий например так Pull request на bitbucket
  2. Слегка улучшаем

    Code Block
    % cd <repo_path>
    % sudo aptitide install python-virtualenv
    % virtualenv .
    % ./bin/pip install -r etc/requirements/noc.txt
    тут может потребоваться поставить еще софт. типа python-dev postgresql-server-dev-9.1. все зависит от текущей инсталяции.

     

  3. Сильно не хотелось подымать локальный mongodb и postgres. Будем использовать те что уже есть на dev сервере. для этого сделаем так вот http://www.debian-administration.org/articles/539 . с небольшим дополнением. проброс портов у меня получилось вот так вот:

    Expand
    Code Block
    title/etc/network/interfaces
    iface tun1 inet static
          pre-up ssh -S /var/run/ssh-myvpn-tunnel-control -M -f -L 63334:127.0.0.1:27017 -L 63333:127.0.0.1:5432 -w 1:1 root@<NOC-DEV-SERVER-IP> start
          pre-up sleep 5
          address 10.0.0.2
          pointopoint 10.0.0.1
          netmask 255.255.255.252
          up route add -net <TEST-HW-NETWORK> gw 10.0.0.1 tun1
          post-down ssh -S /var/run/ssh-myvpn-tunnel-control -O exit <NOC-DEV-SERVER-IP>
    
    

    этот кусок который отличается от статьи. остальное строго по ней.

    Оказывается ssh может пробрасывать порты и прикидываться интерфейсом и все это делать в рамках одного соединения.

  4. Доступ к базам надо прописать в etc/noc.conf в соответствующих секциях.

    Expand
    titleу меня получилось вот так
    Code Block
    [database]
    # postgresql_psycopg2
    engine   = postgresql_psycopg2
    # Database name
    name     = noc
    # Database user
    user     = noc
    # User password
    password = noc
    # Set to empty string for localhost
    host     = 127.0.0.1
    # Set to empty string for default
    port     = 63333
    
    [nosql_database]
    # MongoDB database name
    name = noc
    # MongoDB database user
    user = noc
    # MongoDB database password
    password = noc
    #
    host = 127.0.0.1
    #
    port = 63334
    
    

    за сим настройка нока завершена. других изменений не делал. что бы проверит ькак это работает пришлось поставить клиенты mongo и

  5. ставим pycharm
  6. На созданную директорию натравливаем pycharm. он радостно все хавает.
  7. Делаем вот такие настройки запуска скриптов 

    Expand

  8. Радуемся. pycharm не только запускает скрипты но и дает их отлаживать!

Грабли

  • Pycharm не смотря на всю крутость не умеет mercurial branch. так что их по прежнему надо делать через консоль.
  • что бы заниматься разработкой надо переключаться в linux.
  • Надо бы описать как во всей этой схеме помогает keepass, но влом.