среда, 30 октября 2019 г.
воскресенье, 27 октября 2019 г.
Unity3d: Failed to activate/update license. Timeout occured while trying to update license. Please try again later or contact
Есть такой кривой движок (точнее его лицензирование), со сборкой из консоли там беда. И как пример ошибка
Failed to activate/update license. Timeout occured while trying to update license. Please try again later or contact
Вариант первый - заходим на сервер сборки где-то раз в месяц, в Unity Hub, там активируем лицензию (вероятно, надо ещё сделать login в хабе)
Вариант второй: читаем, думаем.
https://unitycoder.com/blog/2017/05/19/install-run-unity-in-linux-terminal/
https://forum.unity.com/threads/5-4-0p1-fails-to-launch-due-to-license.425277/#post-2941499
https://forum.unity.com/threads/unity-5-3-seems-to-break-batchmode-nographics-on-headless-linux.376074/
https://stackoverflow.com/questions/47399488/building-running-headless-unity3d-game-in-ubuntu-docker-container
И вообще типа для консольной сборки нужна про версия (у нас есть, от гемора и танцев не спасает, при этом в 1 поток похоже можно таки собирать и на бесплатной лицензии)
Failed to activate/update license. Timeout occured while trying to update license. Please try again later or contact
Вариант первый - заходим на сервер сборки где-то раз в месяц, в Unity Hub, там активируем лицензию (вероятно, надо ещё сделать login в хабе)
Вариант второй: читаем, думаем.
https://unitycoder.com/blog/2017/05/19/install-run-unity-in-linux-terminal/
https://forum.unity.com/threads/5-4-0p1-fails-to-launch-due-to-license.425277/#post-2941499
https://forum.unity.com/threads/unity-5-3-seems-to-break-batchmode-nographics-on-headless-linux.376074/
https://stackoverflow.com/questions/47399488/building-running-headless-unity3d-game-in-ubuntu-docker-container
И вообще типа для консольной сборки нужна про версия (у нас есть, от гемора и танцев не спасает, при этом в 1 поток похоже можно таки собирать и на бесплатной лицензии)
вторник, 22 октября 2019 г.
Разработка под Unity
https://habr.com/ru/post/250153/
Для сборки можно использовать как windows, так и mac, но лучше собирать в unity cloud или на маке, вариант - MacInCloud
https://www.freecodecamp.org/news/how-to-make-an-ios-on-demand-build-system-with-jenkins-and-fastlane-8eb1e02c73d1/
Для сборки можно использовать как windows, так и mac, но лучше собирать в unity cloud или на маке, вариант - MacInCloud
https://www.freecodecamp.org/news/how-to-make-an-ios-on-demand-build-system-with-jenkins-and-fastlane-8eb1e02c73d1/
пятница, 11 октября 2019 г.
Jenkins, freestyle job and git commit
Если требуется внести какие-либо изменения в гит ветку через jenkins, у нас есть плагин Git Plugin. Но он хорошо работает только если нам не нужны правки в репе, потому что суть плагина в том что он делает "detached HEAD", через получение id последнего коммита в ветке и git checkout (id), получая тем самым этот detached.
При этом мы можем сделать в сборке коммит (но не можем push - запросит данные для авторизации в гите), а дальше в послесборочных операциях добавляем Git Publisher, который вроде как пушит.. но всё пропадает бесследно. Также проблем добавляет то, что описания (те что в дженкинсе по нажатию вопроса) писал имбецил, из них непонятно ничего. Прежде всего речь про git publisher - branches.
Рекомендуется в Additional Behaviours добавить Clean before checkout
И до начала убеждаемся, что у нас есть права на push, иначе можно очень долго тупить когда будет говорить repository not found.
Что нужно проверить.
В управлении исходным кодом стоит refs/heads/our_branch
В Additional Behaviours добавлено
1) Clean before checkout
2) Custom user name/e-mail address и заполнено
3) Check out to specific local branch - commitbranch (имя можно поставить своё, это временная ветка, если первый пункт не ставить то в имя добавить $BRANCH_ID)
Таким образом, detached HEAD у нас превращается в локальную ветку, с которой гораздо проще работать.
Для успешного пуша необходимо в Branches - add branch добавить ветку,
Branch to push - имя ветки куда мы будем пушить, без префиксов, если пушить надо туда же откуда делали чекаут то нужно распарсить $GIT_BRANCH, взяв только последнюю секцию (без origin/ или refs/heads/), например так ${GIT_BRANCH/refs\/heads\//}
Target remote name - origin
Но есть и "другие варианты"
Итак, вариант первый: в build добавляем
git checkout $GIT_BRANCH и будет нормальный чекаут
https://stackoverflow.com/questions/19922435/how-to-push-changes-to-github-after-jenkins-build-completes/29786580
(но с пушем по прежнему есть нюансы, читаем по ссылке)
Вариант второй: сделать временную ветку и потом мержить её в нужную нам
Additional Behaviours - Check out to specific local branch
commitbranch-$BRANCH_ID
по сути, выше это и описано
Вариант третий:
Пушить не через git publisher а из шелла. Привет проблемы с тем как передать авторизацию, надо читать про git_askpass
https://stackoverflow.com/questions/42627269/jenkins-using-git-askpass-to-set-credentials/42636309
и в общем самый костыльный вариант
И ещё можно почитать
https://riptutorial.com/jenkins/example/27915/configuring-the-auto-push-job
https://stackoverflow.com/questions/14766214/jenkins-git-publisher-how-to-push-back-to-git-branch
https://www.theserverside.com/video/Tips-and-tricks-on-how-to-use-Jenkins-Git-Plugin
При этом мы можем сделать в сборке коммит (но не можем push - запросит данные для авторизации в гите), а дальше в послесборочных операциях добавляем Git Publisher, который вроде как пушит.. но всё пропадает бесследно. Также проблем добавляет то, что описания (те что в дженкинсе по нажатию вопроса) писал имбецил, из них непонятно ничего. Прежде всего речь про git publisher - branches.
Рекомендуется в Additional Behaviours добавить Clean before checkout
И до начала убеждаемся, что у нас есть права на push, иначе можно очень долго тупить когда будет говорить repository not found.
Что нужно проверить.
В управлении исходным кодом стоит refs/heads/our_branch
В Additional Behaviours добавлено
1) Clean before checkout
2) Custom user name/e-mail address и заполнено
3) Check out to specific local branch - commitbranch (имя можно поставить своё, это временная ветка, если первый пункт не ставить то в имя добавить $BRANCH_ID)
Таким образом, detached HEAD у нас превращается в локальную ветку, с которой гораздо проще работать.
Для успешного пуша необходимо в Branches - add branch добавить ветку,
Branch to push - имя ветки куда мы будем пушить, без префиксов, если пушить надо туда же откуда делали чекаут то нужно распарсить $GIT_BRANCH, взяв только последнюю секцию (без origin/ или refs/heads/), например так ${GIT_BRANCH/refs\/heads\//}
Target remote name - origin
Но есть и "другие варианты"
Итак, вариант первый: в build добавляем
git checkout $GIT_BRANCH и будет нормальный чекаут
https://stackoverflow.com/questions/19922435/how-to-push-changes-to-github-after-jenkins-build-completes/29786580
(но с пушем по прежнему есть нюансы, читаем по ссылке)
Вариант второй: сделать временную ветку и потом мержить её в нужную нам
Additional Behaviours - Check out to specific local branch
commitbranch-$BRANCH_ID
по сути, выше это и описано
Вариант третий:
Пушить не через git publisher а из шелла. Привет проблемы с тем как передать авторизацию, надо читать про git_askpass
https://stackoverflow.com/questions/42627269/jenkins-using-git-askpass-to-set-credentials/42636309
и в общем самый костыльный вариант
И ещё можно почитать
https://riptutorial.com/jenkins/example/27915/configuring-the-auto-push-job
https://stackoverflow.com/questions/14766214/jenkins-git-publisher-how-to-push-back-to-git-branch
https://www.theserverside.com/video/Tips-and-tricks-on-how-to-use-Jenkins-Git-Plugin
среда, 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
}
Для локальной машины метрики можно получить так
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
}
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$
}
Вообще, можно посмотреть на достаточно интересную доку
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
По запуску читаем доку.
Также для публикации в 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
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
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
понедельник, 9 сентября 2019 г.
четверг, 29 августа 2019 г.
MasOS in amazon cloud?
Note: first and foremost, it’s completely illegal. The macOS/OS X end user license agreement specifies that you have a right to use the OS on hardware made by Apple, no place else.
Так что если амазон не закупит большую пачку серверов в свои ДЦ - легально это не сделать. Хотя если есть куча времени, можно попробовать развернуть hackintosh.
Был уже такой вопрос
https://forums.aws.amazon.com/message.jspa?messageID=568932
2014 год, воз и ныне там.
Но можно посмотреть на сервисы, которые такое уже сделали
https://www.macincloud.com/
https://www.hostmyapple.com/
https://www.macstadium.com/usecases#Build-Machines
Так что если амазон не закупит большую пачку серверов в свои ДЦ - легально это не сделать. Хотя если есть куча времени, можно попробовать развернуть hackintosh.
Был уже такой вопрос
https://forums.aws.amazon.com/message.jspa?messageID=568932
2014 год, воз и ныне там.
Но можно посмотреть на сервисы, которые такое уже сделали
https://www.macincloud.com/
https://www.hostmyapple.com/
https://www.macstadium.com/usecases#Build-Machines
среда, 28 августа 2019 г.
nginx json logs
log_format json_combined escape=json '{ "created_at": "$msec", '
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"request": "$request", '
'"status": $status, '
'"bytes_sent": $bytes_sent, '
'"request_length": $request_length, '
'"request_time": $request_time, '
'"http_referrer": "$http_referer", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"http_user_agent": "$http_user_agent" }';
access_log /var/log/nginx/access.log json_combined;
среда, 21 августа 2019 г.
sslh
SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443
Telegram наносит ответный удар DPI и блокировкам — Fake TLS
Умеет много протоколов на 1 порту, анализируя пришедшее. Первое полезное DPI.
Из основного - умеет ssh, ssl, openvpn
Telegram наносит ответный удар DPI и блокировкам — Fake TLS
Умеет много протоколов на 1 порту, анализируя пришедшее. Первое полезное DPI.
Из основного - умеет ssh, ssl, openvpn
среда, 14 августа 2019 г.
Private subnet + openvpn в амазоне
Первое что нужно помнить - для уже созданной машины нельзя менять subnet, обходной путь через создание образа и раскатывание нового инстанса.
2 доки, с которыми стоит заранее ознакомиться
https://aws.amazon.com/ru/blogs/awsmarketplace/setting-up-openvpn-access-server-in-amazon-vpc/
https://www.freecodecamp.org/news/how-you-can-use-openvpn-to-safely-access-private-aws-resources-f904cd24f890/
Вкратце, можно взять уже готовый образ с openvpn AS (access server) и платить потом за его использование, а можно развернуть ось и поставить туда пакет с openvpn as. При втором подходе будет ограничение на 2 одновременных коннекта.
Сама установка (для centos):
wget http://swupdate.openvpn.org/as/openvpn-as-2.5.2-CentOS7.x86_64.rpm
yum install -y openvpn-as-2.5.2-CentOS7.x86_64.rpm
Увы, там нет про создание private subnet, может быть позднее сделаю.
2 доки, с которыми стоит заранее ознакомиться
https://aws.amazon.com/ru/blogs/awsmarketplace/setting-up-openvpn-access-server-in-amazon-vpc/
https://www.freecodecamp.org/news/how-you-can-use-openvpn-to-safely-access-private-aws-resources-f904cd24f890/
Вкратце, можно взять уже готовый образ с openvpn AS (access server) и платить потом за его использование, а можно развернуть ось и поставить туда пакет с openvpn as. При втором подходе будет ограничение на 2 одновременных коннекта.
Сама установка (для centos):
wget http://swupdate.openvpn.org/as/openvpn-as-2.5.2-CentOS7.x86_64.rpm
yum install -y openvpn-as-2.5.2-CentOS7.x86_64.rpm
Увы, там нет про создание private subnet, может быть позднее сделаю.
Подписаться на:
Сообщения (Atom)