UPWORK/ODESK guru: Tips and Tricks for clients

skype: upwork.link , email: [email protected]

Openstack Neutron: again bugs of python coders – ethernet via infiniband

without comments

If you want use ethernet network on computation nodes via Infiniband network infrastructure for flat type or for bridges, so you will failed.
Obviously, again low level of coders of python of component Neutron.
All code of Neutron (as and all OpenStack) it is just big set of wrapper python scripts around usual linux tools.
In context Neutron and in this particular case python code of ‘linuxbridge’ script just makes primitive “parsing” of standard output of shell commands – ‘ip link show’!!)) . And this code seeks only small string – ‘link/ether’. But it is not correctly!
As transient variant, in this case of architecture, need check also and ‘link/infiniband’ as minimum.

Below small code of patch ))

Read the rest of this entry »

Written by spectre

January 10th, 2018 at 10:34 pm

Posted in Openstack

Openstack Nova: не удается загрузить экземпляр из образа (создать новый том) из-за тайм-аута для больших образов

without comments

Хотя проблема по сути были исправлена в ранних релизах, и жестко закодированные таймауты ожидания готовности блочных криворуким пиностом были устранены, все же хочется напомнить “юным” инсталляторщикам сложных систем вид ошибки, которую они могу встретить и два параметра которые могут помочь.

Итак в лог может вывалиться следующий блок от менеджера Nova на узле виртуализации:

Read the rest of this entry »

Written by spectre

January 2nd, 2018 at 2:54 pm

Posted in Openstack

Как распечатать полную трассировку кода скрипта python без остановки?

without comments

Для отладки можно все увидеть в текущей трассировке стека, вызвав:

1
  traceback.print_stack()

И нет необходимости вручную поднимать исключение, чтобы снова поймать его.

или в подробностях:

https://docs.python.org/2.7/library/traceback.html#traceback.print_stack
https://docs.python.org/3/library/traceback.html#traceback.print_stack

Written by spectre

December 27th, 2017 at 6:36 pm

Posted in Python snake

Баги Openstack: Authentication cannot be scoped to multiple targets. Pick one of: project, domain, trust or unscoped

without comments

Если по каким-то причинам начиная работать с NOVA появиться сообщение:

1
2
3
[[email protected] nova]# nova availability-zone-list
ERROR (AuthorizationFailure): Authentication cannot be scoped to multiple targets. Pick one of: project, domain, trust or unscoped
[[email protected] nova]#

Это очередной косяк проекта в вечной их череде, так как остальные сервисы могут работать с этой средой авторизации казалось бы без ошибок )))

Надо проверить переменные среды которые NOVA считает некорректными для себя и предположительно, что указано os_domain_name или os_domain_id там, где вместо этого следует указывать os_project_domain_name или os_project_domain_id.
Первые используются для аутентификации в домене, а последние (вместе с os_project_name) используются для аутентификации в проекте.

Written by spectre

December 26th, 2017 at 5:31 pm

Posted in Openstack

Как установить операционную систему (CentOS 6/7) с установочного носителя в среде Openstack через Web интерфейс?

without comments

Я часто получаю вопросы о создании нового экземпляра со своего установочного носителя в среде openstack. Здесь я опишу простые инструкции для моих клиентов, которые покажут шаг за шагом через установку нового экземпляра в среде openstack из iso-файла. Дело в том, что при загрузке любой копии виртуальной машины с указанием загрузочного устройства image, этот image (iso) копируется в новый том, из которого загружается.

В общих чертах можно выделить следующие шаги:
краткое пособие:

  1. Загрузка iso образа диска как нового образа(image).
  2. Создание нового том(volume) из образа(image).
  3. Создание нового чистого том для будущего загрузочного диска (желательно “зануление” всего пространства в случае CEPH).
  4. Запуск нового экземпляра с загрузкой с тома из шага 2.
  5. Подключение “чистого” тома из шага 3 к экземпляру.
  6. Установка системы на “чистый” том.
  7. Запуск экземпляр и создание нового как с загрузкой с тома с установленной системой.
  8. Создание по необходимости снимка “чистой” системы, а затем запуск экземпляр с загрузкой с моментального снимка.

Read the rest of this entry »

Written by spectre

December 25th, 2017 at 5:46 pm

Posted in Openstack

Running certbot – disable auto upgrade.

without comments

certbot-auto всегда будет пытаться извлечь самую новую версию из самой последней версии. Если вы хотите, чтобы он был заблокирован на определенную версию и не получал автоматических обновлений, запустите его с помощью флага

1
2
3
4
5
6
7
8
9
10
# scripts/letsencrypt/certbot-auto --no-self-upgrade
...
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate and install certificates?
-------------------------------------------------------------------------------
1: Apache Web Server plugin - Beta (apache)
2: Nginx Web Server plugin - Alpha (nginx)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Written by spectre

December 11th, 2017 at 9:38 pm

Posted in Tips and Tricks

openSUSE: установить альтернативную версию python без изменения версии по умолчанию

without comments

Если вам нужно поддерживать разные версии одновременно, лучше всего установить их в свое дерево. configure принимает необязательный аргумент –prefix =/path/to/installation/root.
Мы могли бы установить дополнительный программный пакет в виде файла /opt/local/x86_64-linux-gnu/python-2.6.6. Пользователи, которым нужна эта конкретная версия, могут затем добавить /opt/local/x86_64-linux-gnu/python-2.6.6/bin к их $ PATH или использовать virtualenvили GNU stow .

Для примера следующий набор шагов:

Read the rest of this entry »

Written by spectre

November 27th, 2017 at 3:54 pm

Posted in Python snake

BASH: сохраняем историю со всех терминалов

with one comment

Меня давно раздражает поведение файла истории Баша. Если вы используете несколько терминалов, вся история теряется, за исключением закрытия последнего терминала. Правильное поведение должно состоять в том, чтобы сохранить всю историю со всех терминалов! Легкий способ сделать это – просто сохранить команды в файле истории в реальном времени. Благодаря Linux Commando я знаю, как это сделать. Вот секрет:

1
2
shopt -s histappend
PROMPT_COMMAND = "history -a; $ PROMPT_COMMAND"

Поместите эти строки в ваш bash_profile или bashrc. Первая строка говорит bash добавить к истории вместо полной перезаписи. Вторая строка вызывает историю – каждый раз, когда отображается приглашение, которое по существу добавляет последнюю команду в файл истории.

Written by spectre

November 27th, 2017 at 1:42 pm

Posted in Bash,Tips and Tricks

Openstack Horizon: Bug of ‘FileField need clean up temp file….’ or how to remove supefluos files in Horizon/Django after uploading..

without comments

After few day envestigation code I created patch. I hope core developers can use it in horizon …

1
2
3
4
5
6
7
8
9
10
11
12
13
14
234 @@ -442,7 +442,12 @@
235                                      {'data': data})
236          else:
237              def upload():
238 -                return glanceclient(request).images.upload(image.id, data)
239 +                glance_answer = glanceclient(request).images.upload(image.id, data)
240 +                if isinstance(data, TemporaryUploadedFile):
241 +                   if glance_answer[0].ok is True :
242 +                      data.file.close_called = False
243 +                      data.file.close()
244 +                return glance_answer
245              thread.start_new_thread(upload, ())
246
247      return Image(image)

Enjoy! Free!

Written by spectre

November 19th, 2017 at 5:16 pm

Posted in Tips and Tricks

Migrating of virtual instance from Ganeti DRBD to OpenStack/Ganeti via Ceph

without comments

On ganeti, shutdown the instance and activate its disks:

1
2
3
4
# gnt-instance shutdown 0030
Waiting for job 187265 for 0030 ...
# gnt-instance activate-disks 0030
snode-iu.gnt:disk/0:/dev/drbd20

Read the rest of this entry »

Written by spectre

October 15th, 2017 at 2:04 pm