Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

Apache: SetEnv — установить переменную окружения

22 июля 2016
 

 Требуется задать переменную окружения для пользователя www-data, что бы использовать её в PHP-скриптах. Попытки сделать это через файлы /etc/apache2/envvars, /etc/profile.d/music.sh и /etc/environment результата не принесли. Вместо этого — можно использовать модуль mod_env и директиву SetEnv.

Python: скрипт бекапа WordPress

10 июня 2016
 

 Скрипт писался для бекапа нескольких WPMU приложений. Имеет возможность бекапить несколько сайтов WordPress по данным, указанным в файле конфигурации. Создаёт tar.gz архив для файлов сайта, и sql-файл — для дампа базы данных. Файл конфигурации обрабатывается модулем ConfigParser.

C: указатели — подробный разбор

22 мая 2016
 

 Перевод с небольшими дополнениями, уточнениями и примерами. Оригинал в посте C Pointers Explained, Really. >>><<< Когда я учился в колледже — мой друг пожаловался, что ему сложно понять синтаксис и использование указателей при программировании на С. Для примера он привёл код вида «*x=**p++«, говоря что он уродливый и сложный для чтения, в нём слишком много операторов, наложенных друг… Читать далее »

Ruby: скрипт git-деплоя в Azure

21 мая 2016
 

 Скрипт запускается из GoCD и использует Git-деплой от Azure — загружает репозиторий из Azure WebApp на билд-агент GoCD, rsync-ом копирует в него новые файлы, добавляет файл version.html с номером билда и номером последнего коммита, коммитит, и пушит изменения обратно в репозиторий на WebApp в Azure. Для авторизации используются переменные из Environment variables в GoCD:

Ruby: cannot load such file — mkmf

18 мая 2016
 

 Во время запуска Test Kitchen — Ruby падает с ошибкой: … Installing json 1.8.2 with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’: cannot load such file — mkmf (LoadError) from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require’ from extconf.rb:1:in `<main>’ … Устанавливаем apt-file: # apt-get install apt-file Находим пакет, в который входит mkmf: #… Читать далее »

Azure: управление зонами в Azure DNS — Git, GoCD, bash и Azure CLI

12 мая 2016
 

 Новый проект переносит свои домены на DNS Azure, для чего требовалось создать возможность управления ими. Схема получается следующая: файлы зон хранятся в Stash; GoCD проверяет обновления в Stash, и триггерит билд; во время билда — файлы зон заливаются на Azure DNS. Обновление данных выполняется bash-скриптом с помощью Azure CLI. Больше про Azure CLI  и работу с… Читать далее »

NGINX: управление конфигурацией прокси

3 мая 2016
 

 Система управления прокси-сервером под NGINX на Ubuntu 14.04 в Azure. Файлы конфигураций бекенд-хостов хранятся в Atlassian Stash, в роли CI/CD сервера выступает GoCD от Hashicorp. Предназначена для предоставления девелоперам возможности управления конфигурацией хостов в процессе переноса сайтов проекта со старых на новые версии. Репозиторий Скрипты Скрипт backup.sh Скрипт nginx_update.sh GoCD Репозиторий

Python: пример AWS boto3 SQS и SES

19 марта 2016
 

 boto3 — набор библиотек для Python, для работы с AWS. AWS CLI «под капотом» использует boto3 для работы с ядром Amazon Web Services. Данный пост — ни разу не HowTo, а скорее просто набор заметок и быстрых примеров + пример скрипта, использующего boto3 для работы с AWS SQS и SES. Документация: https://boto3.readthedocs.org/en/latest Документация по модулю… Читать далее »

WordPress: добавляем отображение даты поста

24 февраля 2016
 

 После переезда на Amazon новая тема оформления не отображала дату публикации постов на главной странице: Неудобно самому, неудобно посетителям. Хотя сама тема мне очень нравится.