Size: a a a

Админим с Буквой

2018 July 13
Админим с Буквой
Запускаем задачу в background в докер контейнере через ansible

Особо ничего сложного, nohup да &, однако процесс все равно не отпускает консоль, посему ansible зависает. Чтобы этого не происходило, можно применить такую конструкцию:

- name: run bg job
 shell: docker exec -i <container> sh -c 'nohup CMD &'
 async: 45
 poll: 0

#docker #ansible
источник
Админим с Буквой
ну да, я занимаюсь правками текста прямо в канале ¯\_(ツ)_/¯
источник
Админим с Буквой
RBAC on docker registry

Поигрался тут на днях с одним сервисом который позволяет использвать token-based аутентификацию пользователя с docker registry. Стандартный вариант логин-пароль уже не удовлетворяет потребностям и пришлось искать что-то другое. В итоге набрел на готовое решение от cesanta/docker_auth. Написано на go, легковестный token-сервис с поддержкой различных способов аутентификации пользователей и также, что самое главное - это ACL. С помощью acl можно задавать кто, и какие репозитории может пушить и пуллить, с точностью до регулярного выражения. В качестве базы хранения пользователей-acl можно выбрать статический файл, mongodb, ldap и некоторые другие. В том числе можно использовать и сторонний софт, хоть самопис. токен будет выдаваться в зависимости от кода ответа этого софта. И тут уже можно сделать все что угодно - хоть выдавать токены в зависимости от времени суток. Поковырявшись в этом собрал готовое решение, запускаемое через docker-compose. Оно содержит набор из 3 контейнеров: docker_auth, docker registry и mongo. После старта docker-compose все что нужно сделать - загрузить список правил и пользователей в mongo через простейший shell-скрипт.

https://github.com/bykvaadm/docker_auth

#docker #auth
источник
Админим с Буквой
Git commit messages

Как правильно комиттить в гит. Хорошая статья с хабра:

https://habr.com/post/416887/

#thirdparty #read #git
источник
Админим с Буквой
Книга про гит на русском. Это для тех людей, кто вдруг ее еще не видел. Или вдруг еще даже не пользовался никогда гитом. Самое время начать!

#git
источник
2018 July 14
Админим с Буквой
Выпуск Debian 9.5

Доступно пятое корректирующее обновление дистрибутива Debian 9, в которое включены накопившиеся обновления пакетов и устранены недоработки в инсталляторе. Выпуск включает 91 обновление с устранением проблем со стабильностью и 100 обновлений с устранением уязвимостей.
источник
2018 July 16
Админим с Буквой
Kubernetes restart all pods

kubectl -n NS get po --show-labels
## pickup necessary labels
kubectl -n NS delete po -l app=xxxx


#kubernetes
источник
Админим с Буквой
Лулз

#include <stdlib.h>
#include <stdio.h>
#include <cerr.h>
#include <bash.h>

#define INFINITE ~0u

int main(int argc, char *argv[]) {
   printf("Hello world!\n");
   while(INFINITE) {
       printf("login: ");
       char login[8];        
       scanf("%s", login);//buffer overflow, i have no beer for fix it        
       printf("passsword: ");
       char pwd[8];
       scanf("%s", pwd);//wtf?! beer! beer! beer!
       if(0.25 > rand() / (float)RAND_MAX) {
            startBash(login);
       } else {
            printf("Login is incorrect!\n");
       }
       if(0.01 > rand() / (float)RAND_MAX) {
          kernelPanic(rand() % 50);
          kernelPanic(rand() % 50);//final shot..DIE! or beer..
       }
   }
   return 0;
}


источник: http://absurdopedia.wikia.com/wiki/Linux#.D0.A4.D0.B0.D0.B1.D1.80.D0.B8.D0.BA.D0.B0_.D0.BF.D0.B8.D0.BD.D0.B3.D0.B2.D0.B8.D0.BD.D0.BE.D0.B2?li_source=LI&li_medium=wikia-footer-wiki-rec
источник
2018 July 17
Админим с Буквой
Лаба по повышению привилегий в Linux

https://in.security/lin-security-practise-your-linux-privilege-escalation-foo/

#security #learning #thirdparty
источник
2018 July 18
Админим с Буквой
Cleanup docker registry

Проверено для версии 2.6.2

1. добавить в конфиг registry эти строки и перезапустить:

storage:
 delete:
   enabled: true


2. получаем список тегов для репозитория и выбираем список на удаление

curl -u <user>:<password> https://<registry_host>/v2/<repo_name>/tags/list


3. помечаем объекты на удаление через api

repo="REPO_PATH"
tag_list='TAG LIST separated by space'
user="USER"
pwd="PASSWORD"
registry_host="<registry_host>"
header="Accept: application/vnd.docker.distribution.manifest.v2+json"

for tag in ${tag_list}; do
 digest=$(curl -I -u $user:$pwd -H "$header" "https://${registry_host}/v2/${repo}/manifests/${tag}" 2>/dev/null|  awk '$1 == "docker-content-digest:" {print $2}'| tr -dc '[[:print:]]')
 curl -XDELETE -u $user:$pwd -H "$header" "https://${registry_host}/v2/${repo}/manifests/${digest}"
done


4. заходим внутрь контейнера и запускаем garbage-collector.

registry garbage-collect /etc/docker/registry/config.yml


Итого наша задача - получить список тегов, выбрать нужные на удаление. На каждый тег получить sha256 манифеста (docker-content-digest в заголовке ответа), а затем пометить  этот заголовок на удаление. К концу 3-го пункта никакие данные еще не удалены. Удаление происходит не вручную, а с помощью нативного сборщика мусора. согласно помеченным манифестам будут удалены выбранные теги.

#docker #registry
источник
2018 July 19
Админим с Буквой
Curl resolve w\o dns

Иногда нужно протестировать какой-то домен здесь и сейчас (особенно когда он работает через прокси и\или https), лезть при этом делать dns неохото, прописывать в hosts - тоже долго, поскольку это можно сделать не отходя далеко от курла:

curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/

#curl
источник
2018 July 20
Админим с Буквой
.bashrc vs .bash_profile

разница между ними в том что .bash_profile исполняется при прямом логине в shell, тогда как .bashrc выполняется для non-login shells. Таким образом если вы например хотите настроить алиасы для работы в консоли на удаленном сервере - ваш файл bash_profile, если это будет отличный от прямого входа в shell - тогда настраиваем bashrc.

But, if you’ve already logged into your machine and open a new terminal window (xterm) then .bashrc is executed before the window command prompt. .bashrc is also run when you start a new bash instance by typing /bin/bash in a terminal.

#bash_tips_and_tricks
источник
Админим с Буквой
Смотрим какое правило маршрутизации применится к ip адресу

ip r g x.x.x.x
источник
2018 July 22
Админим с Буквой
A fully-modern text-based browser, rendering to TTY and browsers
#terminal
https://github.com/browsh-org/browsh
источник
2018 July 23
Админим с Буквой
wheezy to stretch update

При изменение репоса wheezy -> stretch и выполнении команды apt-get update может вылезти ошибка связанная с отсутствием ключей.

W: There is no public key available for the following key IDs:


Поможет доустановка пакетов:

apt-get install debian-keyring debian-archive-keyring


#troubleshooting
источник
2018 July 24
Админим с Буквой
Включаем coredump для ОС c systemd на борту

1. ставим пакет для управления - systemd-coredump

2. разрешаем дампить coredump процессам:
в файле /etc/systemd/system.conf правим

DefaultLimitCORE=infinity

3. опционально разрешаем это для root:
в файле /etc/security/limits.d/core.conf

root       hard        core        unlimited
root       soft        core        unlimited


4. задаем поведение для демона, создающего дампы:
в файле /etc/sysctl.d/coredumps.conf

kernel.core_pattern = /var/lib/coredumps/core-%e-sig%s-user%u-group%g-pid%p-time%t
kernel.core_uses_pid = 1
fs.suid_dumpable = 2


5. применение:

systemctl daemon-reexec или reboot

6. проверка:

kill -11 <PID>

в /var/lib/coredumps (или /var/tmp по-умолчанию) создастся coredump.

З.Ы. без каких либо настроек после установки пакета можно сразу управлять дампами через команду

coredumpctl list и coredumpctl dump

#troubleshooting #coredump
источник
Админим с Буквой
перезапуск гнома

alt+F2 -> ввести букву r -> нажать enter

Окна при этом не будут закрыты. Аналог команды для терминала:

gnome-shell --replace

#troubleshooting
источник
2018 July 25
Админим с Буквой
При внедрении собственных шаблонов в серверные шаблонизаторы (уязвимость SSTI) — эксплуатацию можно автоматизировать с помощью утилиты tplmap. Она и шаблонизатор подберет, и удобный шелл откроет для выполнения произвольного кода. Еще и плагин к Burp Suite имеет.

https://github.com/epinna/tplmap
источник
2018 July 26
Админим с Буквой
Kubernetes 1.10.x -> 1.11.x

Грабли! Грабли! Грабли! куда же без них...

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

Тыц: https://github.com/kubernetes/kubernetes/issues/65863
и Тыц: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md

#kubernetes #troubleshooting
источник
Админим с Буквой
Интересно, этот кусок говна, вообще способен нормально обновляться между мажорными версиями, а не ломать все нахер?...
источник