среда, 18 сентября 2019 г.

Amazon+Docker

В AWS есть аж 3 сервиса для поднятия докера:
1) ECR+ECS
2) EKS

1) ECR+ECS
ECR это аналог Docker Registry, ничего особо сложного
ECS - более интересен, это и есть по сути докер. И тут есть нюанс: запускать докеры можно в 2 режимах, на базе созданных виртуалок и на базе serverless технологии FarGate. То есть сервера там разумеется тоже есть, но ими занимается сам амазон.

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

Что почитать

nagios: получение метрик

#переработать

Для локальной машины метрики можно получить так
define service{
        use                             generic-service         ; Name of service template to use
        host_name                       Linux_Host
        service_description             / Partition
                check_command                                   check_local_disk!50%!25%!/
        }
(предварительно описываем Linux_Host через define host, вообще любые хосты которые упоминаются в host_name должны быть заранее описаны)

Также можно в objects/templates.cfg вписать такое
define service {
    name                    sip-pinger-service
    use                     generic-service
    service_description     Pinger
    check_command           check-sip-options
    contact_groups          admins
    register                0
}
И потом вызвать в хосте так
define service {
    use                     sip-pinger-service
    host_name               1.1.1.1
}
В случае, если по ряду причин host_name не хочется описывать, будет так
define service {
    use                     sip-pinger-service
    host_name               Liux_Host
    check_command     check-sip-options!1.1.1.1
}
где ! это разделитель аргументов, результаты будут в ARG переменных

Когда нужно получить показания с других хостов, обычно это делается через nrpe, например так
define service{
        use                             local-service         ; Name of service template to use
        host_name                       Linux_Host2
        service_description             / Partition
        check_command                check_nrpe!check_root_partition
        }

А на Linux_Host2 в /etc/nrpe.d/ пишем файл (.cfg) со строкой вида
command[check_root_partition]=/usr/lib64/nagios/plugins/check_disk -w 50% -c 25% -p /

Если выдаст ошибку - смотреть objects/command.cfg, там должно быть такое
################################################################################
#
# NRPE check commands
#
################################################################################
define command{
    command_name    check_nrpe
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Установка nagios

Сначала оговорка. Это достаточно посредственный недо-мониторинг, который сам не умеет в историю значений и в графики, и вообще неудачный убогий формат конфигов, как минимум лучше перейти на icinga2.
Вообще, можно посмотреть на достаточно интересную доку
https://labs.consol.de/omd/

Но если уж "так исторически сложилось" то вот

Centos 6:
https://www.digitalocean.com/community/tutorials/how-to-install-nagios-on-centos-6
под 7 будет примерно так же

Проверить что есть в commands.cfg
###############################################################################
# NRPE CHECK COMMAND
#
# Command to use NRPE to check remote host systems
###############################################################################

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}


воскресенье, 15 сентября 2019 г.

Полезные модули Jenkins: разрабатываем под Unity3d

https://wiki.jenkins.io/display/JENKINS/Unity3dBuilder+Plugin
По запуску читаем доку.

Также для публикации в google store есть
https://wiki.jenkins.io/display/JENKINS/Google+Play+Android+Publisher+Plugin
Увы, маководы должны страдать и под них плагинов нет. Причём даже fastlane не поможет - это враппер на itms, который нормально работает только под маком.
Хотя есть такое
https://wiki.jenkins.io/display/JENKINS/Xcode+Plugin

Полезные модули Jenkins: Copy Artifact

Когда задачи достаточно сложные, часто они выстраиваются в цепочки. И бывает так, что собриаем артефакт на одном воркере, а потом обрабатываем на другом. Тогда пригодится модуль Copy Artifact.
https://wiki.jenkins.io/display/JENKINS/Copy+Artifact+Plugin
Но с ним есть нюанс: если есть 2 задачи, ставить задачу с copy зависимой может вызвать труднопонимаемые проблемы, в частности режимы что копировать. По сути, в там случае рабочий режим только один - "Upstream build that triggered this job". В случае Latest successful будет вливаться артефакт предыдущего успешного запуска, поскольку к моменту copy он ещё не successful.

Что ещё можно глянуть
https://codurance.com/training/2014/10/03/guide-to-deploying-artifacts-with-jenkins/
https://subscription.packtpub.com/book/networking_and_servers/9781788297943/6/ch06lvl1sec65/copying-an-artifact-from-another-build-job
https://jenkinsci.github.io/job-dsl-plugin/#plugin/copyartifact
http://qaru.site/questions/502425/how-can-i-use-the-jenkins-copy-artifacts-plugin-from-within-the-pipelines-jenkinsfile

Полезные модули Jenkins: Базовые модули

Чтобы передать параметры в сборку
https://wiki.jenkins.io/display/JENKINS/Parameterized+Trigger+Plugin
Передача паролей в сборку
https://wiki.jenkins.io/display/JENKINS/Credentials+Binding+Plugin

Полезные плагины для работы с гитом и гитхабом
https://wiki.jenkins.io/display/JENKINS/Github+Plugin
https://wiki.jenkins.io/display/JENKINS/Git+Plugin
https://wiki.jenkins.io/display/JENKINS/GitHub+Integration+Plugin

Если что-то собираем
https://wiki.jenkins.io/display/JENKINS/Build-timeout+Plugin