Docker — Nginx with SSL

Задача: Получить и SSL сертификат для Nginx‘a, который живет в контейнере, от Let’s Encrypt и автоматически его продлевать

Nginx в контейнере настроен пока только на прослушивание 80-го порта. В контейнер примонтирована директория с хост машины, для верификации сертификатов, и этот путь описан в локейшене. В примере используется Docker-Compose, но он не является обязательным.

app.conf

server {
    listen 80;
    server_name artem.services;

    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        root /var/www/certbot;
    }
}

docker-compose.yaml

version: '3.1'

services:

  backend:
    image: nginx/nginx:latest
    ports:
      - 80:80
    volumes:
      - ./data/nginx/app.conf:/etc/nginx/conf.d/default.conf
      - ./data/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /var/www/certbot:/var/www/certbot

Читать далее «Docker — Nginx with SSL»

Linux KeyTool — Android Release Key генерация

KeyTool в ходит в состав Java

Генерация:

keytool -genkey -v -keystore MYAPPNAME-release-keystore -alias MYAPPNAME -keyalg RSA -keysize 2048 -validity 10000

Вас попросит ввести пароль для ключа, можете его сгенерировать.

И скопируем его в исходники по пути «android/app/«

BASH — Password generator

RMP системы:

Для генерации нужен пакет «mkpasswd«, который входит в состав «expect«, установим его:

yum install -y expect

Пример использования:

mkpasswd -l 32 -s 2

Сгенерирует один пароль длинной 32 символа, из которых 2 будут спецсимволами.

DEB системы:

Для генерации нужен пакет «makepasswd«.

Пример использования:

makepasswd --minchars=32 --maxchars=32

Сгенерирует один пароль длинной 32 символа.

BASH — Git шпаргалка

Клонировать репозиторий:

git clone [email protected]:artem-services/test.git

Добавить файлы изменений, добавить коммит и пушнуть изменения в ветке:

git add test.txt

git commit -m "Edit test.txt file"

git push

Клонировать определенную ветку:

git clone --single-branch -b test-branch [email protected]:artem-services/test.git

 

Объединяем коммиты в один. Объеденим 3 последних комита в один:

git rebase -i HEAD~3

После чего у вас откроется редактор, нужно заменить действие «pick» на «squash«, или просто «s«. Меняем следующее:

pick 7c71ce6 2FA
pick c2bc305 2FA
pick 8f4163c 2FA

На следующее:

pick 7c71ce6 2FA
squash c2bc305 2FA
squash 8f4163c 2FA

И сохраняем. Затем открывается редактор коммитов, оставляем только нужный комментарий к коммитам, остальные экранируем и сохраняем, и пушаем с форсом:

git push -f

Slack — Notify from BASH

Первым делом, если у вас нету webhook‘и, ее нужно создать, для этого перейдите по ссылке:

https://YOU_ORGANIZATION_NAME.slack.com/services/new/incoming-webhook

Где «YOU_ORGANIZATION_NAME» имя вашей организации в Slack‘е

Дальше нужно скачать скрипт:

curl -s https://gist.githubusercontent.com/andkirby/67a774513215d7ba06384186dd441d9e/raw --output /usr/bin/slack

Автор скрипта: andkirby

Читать далее «Slack — Notify from BASH»

SDK Google Cloud — Установка

Первое что нужно, это создать проект в «Google Cloud Console«, если у вас его еще нет.

Затем переходим «AIM and administration» — «Service accounts«. Мы можем как создать отдельного пользователя для SDK, так и использовать дефолтного пользователя для нашего проекта. Выберем свой сервисный аккаунт и перейдем «Action» — «Create key«, укажем тип ключа «JSON«.

(!) Сохраните его в надежном месте и не пересылайте по почте, так как с помощью этого ключа можно получить доступ к вашему проекту.

Теперь включим необходимые API для сервисного аккаунта. Мне нужен был только «Compute Engine«, его можно включить по ссылке:

https://console.cloud.google.com/apis/library?project=YOU_PROJECT_NAME&orgonly=true

Где «YOU_PROJECT_NAME» имя вашего проекта.

Установка GCloud:

Для Linux и MacOS:

Выполним следующую команду:

curl https://sdk.cloud.google.com | bash

Перезапустим оболочку:

exec -l $SHELL

Запустим «gcloud init» для инициализации gcloud environment:

gcloud init

Вас перебросит на браузер для авторизации. Чтобы пройти авторизацию в консоли, без браузера выполните:

gcloud init --console-only

 

Интерграция с kubectl:

gcloud container clusters get-credentials KUBERNETES_CLUSTER_NAME --zone ZONE_NAME --project YOU_PROJECT_NAME

Traefik — Docker + ACME DNS (Route53) Let’s Encrypt Wildcard

Требование:

В моем примере будет использоваться доменное имя «artem.services«, на основе его будут создаваться субдоменны.

Создадим запись Type A субдоммену «traefik.artem.services» и направим его на нашу ноду.

Пример ниже будет приведен на Docker-Compose, это не является необходимым, просто для удобства. Если Compose не установлен, установим его:

DEB системы:

apt install -y docker-compose

RPM системы:

yum install -y docker-compose

Читать далее «Traefik — Docker + ACME DNS (Route53) Let’s Encrypt Wildcard»

Traefik — Docker + ACME HTTP-01 Let’s Encrypt

Требование:

В моем примере будет использоваться доменное имя «artem.services«, на основе его будут создаваться субдоменны.

Создадим запись Type A субдоммену «traefik.artem.services» и направим его на нашу ноду.

Пример ниже будет приведен на Docker-Compose, это не является необходимым, просто для удобства. Если Compose не установлен, установим его:

DEB системы:

apt install -y docker-compose

RPM системы:

yum install -y docker-compose

Читать далее «Traefik — Docker + ACME HTTP-01 Let’s Encrypt»