Долго был Unix админом, теперь тестирую Desktop/Server софт под Unix, автоматизирую при необходимости.
Контакты

Достижения

Все достижения (9)

Наибольший вклад в теги

Все теги (105)

Лучшие ответы пользователя

Все ответы (138)
  • Как провести сборку и развертывание Django приложения?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Ваша задача сводится к простой вещи - как правильно деплоить код на продакшен.

    Делается это очень просто:
    - Просто клонируем код на продакшен
    - Ставим зависимости (и все остальное)
    - Удаляем все, чего не должно быть на продакшене - gulpfile.js, package.json, bower.json, .bowerrc и конечно же директорию .git.

    Дальше начинаются варианты:
    - Не далять директорию .git, а создать для prod окружения отдельный ключ, который имеет доступ только к prod ветке репозитория. Для увеличения секурности - можно еще открывать репозиторий для продакшена только перед деплоем и закрывать после деплоя.
    - Использовать Docker. Просто собираем контейнер где-то еще, удаляем из контейнера все лишнее и после деплоим сам контейнер в продакшен.

    Вариант с Docker является самым популярным сейчас и имеет огромный плюс - вы собираете образ с Django кодом, этот образ передаете на тестирование и после тестирования этот же образ уходит в продакшен. Это позоляет избегать ошибок, не найденных из-за различия тестового и продакшен окружений. Однако есть много особенностей сборки Docker контейнеров - будет правильным в начале изучить Best Practice, чтобы понять, что можно применить в Вашем случае.

    Чтобы не делать все руками, имеет смысл этот процесс автоматизировать - для вас есть огромное количество инструментов - CI сервера (тот же Jenkins или web аналоги) и средства автоматизации для деплоя - ansible, salt-stack, puppet, chef. Как показывает практика - ansible один из самых простых.
    Ответ написан
  • Какой первый Linux-дистрибутив поставить?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Тот, который стоит у ближайшего, готового отвечать на твои вопросы гуру.
    Ответ написан
  • Почему python не видит модуль?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    ~/vk-test$ virtualenv env
    New python executable in env/bin/python
    Installing setuptools, pip...done.
    ~/vk-test$ . env/bin/activate
    (env)~/vk-test$ pip install vk
    Downloading/unpacking vk
      Downloading vk-2.0.2.tar.gz
      Running setup.py (path:/home/urtow/vk-test/env/build/vk/setup.py) egg_info for package vk
        
    Downloading/unpacking requests>=2.8,<3.0 (from vk)
      Downloading requests-2.10.0-py2.py3-none-any.whl (506kB): 506kB downloaded
    Installing collected packages: vk, requests
      Running setup.py install for vk
        
    Successfully installed vk requests
    Cleaning up...
    (env)~/vk-test$ ipython 
    WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
    Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
    ...
    
    In [1]: import vk


    Итак, исходя из всего выше - у тебя все правильно с кодом.

    Проблемы может быть три:
    1) Ошибка в процессе установки.
    2) Ты установил модуль в virtualenv, а запускаешь вне его.
    3) По умолчанию модуль vk в ubuntu 14.04 ставится для python2. Если ты пробуешь запустить скрипт в python3, то получится вот такая ошибка:
    ipython3
    WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
    Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
    ....
    
    In [1]: import vk
    ---------------------------------------------------------------------------
    ImportError                               Traceback (most recent call last)
    <ipython-input-1-d1455673e4d4> in <module>()
    ----> 1 import vk
    
    ImportError: No module named 'vk'


    Согласно https://pypi.python.org/pypi/vk модуль поддерживает python версии 3.
    Так что надо просто установить его под нужной версией.

    ~/vk-test$ virtualenv -p python3 env
    Running virtualenv with interpreter /usr/bin/python3
    Using base prefix '/usr'
    New python executable in env/bin/python3
    Also creating executable in env/bin/python
    Installing setuptools, pip...done.
    urtow@revenloft:~/vk-test$ . env/bin/activate
    (env)~/vk-test$ python
    Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
    [GCC 4.8.4] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    (env)~/vk-test$ pip install vk
    Downloading/unpacking vk
      Downloading vk-2.0.2.tar.gz
      Running setup.py (path:/home/urtow/vk-test/env/build/vk/setup.py) egg_info for package vk
        
    Downloading/unpacking requests>=2.8,<3.0 (from vk)
      Downloading requests-2.10.0-py2.py3-none-any.whl (506kB): 506kB downloaded
    Installing collected packages: vk, requests
      Running setup.py install for vk
        
    Successfully installed vk requests
    Cleaning up...
    (env)~/vk-test$ ipython3
    WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
    Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
    ...
    
    In [1]: import vk
    
    In [2]:
    Ответ написан
  • Как это сделать?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    ln /files/by-group/group1 /files/user/user1/group1

    Если директория /files/user/user1/group1 уже существует - сохрани из нее все данные, удали и после выполни команду.
    Ответ написан
  • Как эффективно деплоить приложения?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Для управления 5+ серверами удобно использовать софт для оркестрации, для начала посмотри на ansible.

    Как заливать код/бинаркини на сервер - да как угодно. Хотя проще/секурнее использовать тот же scp, благо ansible с ним работает из коробки.

    Bittorrent нужен, когда тебе надо закинуть условно 100Gb на 100 серверов и все эти сервера в одной сети, это совсем другая задача.

    Ты - не Twitter или Facebook, и ихнструменты, которые используют они, для тебя могут быть бесполены или даже вредны.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (2)