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"