@@ -1 +1,2 @@
|
||||
.venv
|
||||
docs/copypaste
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
services:
|
||||
gitlab:
|
||||
image: gitlab/gitlab-ce:18.11.2-ce.0
|
||||
container_name: gitlab
|
||||
restart: always
|
||||
hostname: 'gitlab.sailor.lab'
|
||||
environment:
|
||||
GITLAB_OMNIBUS_CONFIG: |
|
||||
# Add any other gitlab.rb configuration here, each on its own line
|
||||
external_url 'https://gitlab.sailor.lab'
|
||||
ports:
|
||||
- '80:80'
|
||||
- '443:443'
|
||||
- '22:22'
|
||||
volumes:
|
||||
- '/mnt/data/gitlab/config:/etc/gitlab'
|
||||
- '/mnt/data/gitlab/logs:/var/log/gitlab'
|
||||
- '/mnt/data/gitlab/data:/var/opt/gitlab'
|
||||
shm_size: '256m'
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb:10.11
|
||||
container_name: pdns-mariadb
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: "SuperSecretRootPassword"
|
||||
MYSQL_DATABASE: "powerdns"
|
||||
MYSQL_USER: "powerdns"
|
||||
MYSQL_PASSWORD: "StrongUserPassword"
|
||||
volumes:
|
||||
- ./mariadb-data:/var/lib/mysql
|
||||
networks:
|
||||
- pdns-net
|
||||
|
||||
powerdns:
|
||||
image: pschiffe/pdns-mysql:latest
|
||||
container_name: pdns-server
|
||||
restart: always
|
||||
depends_on:
|
||||
- mariadb
|
||||
ports:
|
||||
- "53:53/tcp"
|
||||
- "53:53/udp"
|
||||
- "8081:8081"
|
||||
environment:
|
||||
PDNS_gmysql_host: "mariadb"
|
||||
PDNS_gmysql_port: "3306"
|
||||
PDNS_gmysql_user: "powerdns"
|
||||
PDNS_gmysql_password: "StrongUserPassword"
|
||||
PDNS_gmysql_dbname: "powerdns"
|
||||
# PDNS_master: "yes" ← УДАЛЕНО! Больше не нужно
|
||||
PDNS_api: "yes"
|
||||
PDNS_api_key: "MySecretApiKey123"
|
||||
PDNS_webserver: "yes"
|
||||
PDNS_webserver_address: "0.0.0.0"
|
||||
PDNS_webserver_port: "8081"
|
||||
PDNS_webserver_allow_from: "0.0.0.0/0"
|
||||
PDNS_default_soa_content: "ns1.lan hostmaster.lan 0 10800 3600 604800 3600"
|
||||
PDNS_default_ttl: "3600"
|
||||
PDNS_local_address: "0.0.0.0"
|
||||
PDNS_local_port: "53"
|
||||
networks:
|
||||
- pdns-net
|
||||
|
||||
pdns-admin:
|
||||
image: powerdnsadmin/pda-legacy:latest
|
||||
container_name: pdns-admin
|
||||
restart: always
|
||||
ports:
|
||||
- "8080:80"
|
||||
depends_on:
|
||||
- powerdns
|
||||
environment:
|
||||
PDA_DB_HOST: "mariadb"
|
||||
PDA_DB_PORT: "3306"
|
||||
PDA_DB_USER: "powerdns"
|
||||
PDA_DB_PASSWORD: "StrongUserPassword"
|
||||
PDA_DB_NAME: "powerdnsadmin"
|
||||
PDA_PDNS_API_URL: "http://powerdns:8081/"
|
||||
PDA_PDNS_API_KEY: "MySecretApiKey123"
|
||||
networks:
|
||||
- pdns-net
|
||||
|
||||
networks:
|
||||
pdns-net:
|
||||
driver: bridge
|
||||
+19
-13
@@ -5,7 +5,7 @@
|
||||
Подготавливаем ноду для установки. Все это дело работает на джаве. И хоть в архиве опенсерча уже есть жаба лучше поставить ее прямо на машину, что бы было проще работать
|
||||
```
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install openjdk-25-jdk
|
||||
sudo apt install -y openjdk-25-jdk
|
||||
```
|
||||
Отключим свап и настроем виртуальную память хоста
|
||||
```
|
||||
@@ -18,18 +18,24 @@ cat /proc/sys/vm/max_map_count
|
||||
```
|
||||
После обновления и установки жабы, лучше всего перезагрузится. Далее мы качаем архив с опенсерчем с оффсайта
|
||||
```
|
||||
wget https://artifacts.opensearch.org/releases/bundle/opensearch/3.5.0/opensearch-3.5.0-linux-x64.tar.gz
|
||||
```
|
||||
```
|
||||
Распакуем архив в папку
|
||||
```
|
||||
tar -xvf opensearch-3.5.0-linux-x64.tar.gz -С /etc/opensearch
|
||||
```
|
||||
Создадим папку для хранения сертификатов и перейдем в нее.
|
||||
```
|
||||
sudo mkdir /etc/opensearch/ssl
|
||||
cd /etc/opensearch/ssl
|
||||
bash ssl.sh
|
||||
wget https://artifacts.opensearch.org/releases/bundle/opensearch/3.6.0/opensearch-3.6.0-linux-x64.deb
|
||||
sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=5ruXurur! dpkg -i opensearch-3.6.0-linux-x64.deb
|
||||
sudo systemctl enable opensearch
|
||||
```
|
||||
|
||||
Выполним скрипт ssl.sh (лежит в доке как пример) для создания самоподписанных сертификатов и хранилища сертификатов. СОздадутся корневой сертификат ЦА. Так же создастся на его основе админский сертификат и сертификаты для каждой ноды. Это нужно что бы общение между нодами и дашбордой были зашифрованы. Так же выпустится админский серт для зашифрованного подключения админа.
|
||||
После завершения подготовки требуется нарисовать кофниг. Конфиг имеет формат YAML и различается в зависимости от кластера или стендэлон опенсерча
|
||||
|
||||
|
||||
mv /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.back
|
||||
|
||||
rm /etc/opensearch/*.pem
|
||||
|
||||
vim /etc/opensearch/opensearch.yml
|
||||
|
||||
systemctl start opensearch
|
||||
|
||||
|
||||
wget https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/3.6.0/opensearch-dashboards-3.6.0-linux-x64.deb
|
||||
|
||||
$2y$12$7.7YOQi6.CEN1VSNXg3BqefgQLEeqDbsqxNBNhY1tgZ085q1eZeCK
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
cluster.name: kal-cluster
|
||||
node.name: opensearch-1
|
||||
node.roles: [ cluster_manager, data ]
|
||||
cluster.initial_cluster_manager_nodes: ["opensearch-cluster_manager"]
|
||||
discovery.seed_hosts: ["opensearch-1.sailor.com", "opensearch-2.sailor.com", "opensearch-3.sailor.com"]
|
||||
network.host: 0.0.0.0
|
||||
http.port: 9200
|
||||
plugins.security.disabled: true
|
||||
# Path to directory where to store the data (separate multiple locations by comma):
|
||||
path.data: /var/lib/opensearch
|
||||
# Path to log files:
|
||||
path.logs: /var/log/opensearch
|
||||
@@ -0,0 +1,12 @@
|
||||
cluster.name: kal-cluster
|
||||
node.name: opensearch-2
|
||||
node.roles: [ cluster_manager, data ]
|
||||
cluster.initial_cluster_manager_nodes: ["opensearch-cluster_manager"]
|
||||
discovery.seed_hosts: ["opensearch-1.sailor.com", "opensearch-2.sailor.com", "opensearch-3.sailor.com"]
|
||||
network.host: 0.0.0.0
|
||||
http.port: 9200
|
||||
plugins.security.disabled: true
|
||||
# Path to directory where to store the data (separate multiple locations by comma):
|
||||
path.data: /var/lib/opensearch
|
||||
# Path to log files:
|
||||
path.logs: /var/log/opensearch
|
||||
@@ -0,0 +1,12 @@
|
||||
cluster.name: kal-cluster
|
||||
node.name: opensearch-3
|
||||
node.roles: [ cluster_manager, data ]
|
||||
cluster.initial_cluster_manager_nodes: ["opensearch-cluster_manager"]
|
||||
discovery.seed_hosts: ["opensearch-1.sailor.com", "opensearch-2.sailor.com", "opensearch-3.sailor.com"]
|
||||
network.host: 0.0.0.0
|
||||
http.port: 9200
|
||||
plugins.security.disabled: true
|
||||
# Path to directory where to store the data (separate multiple locations by comma):
|
||||
path.data: /var/lib/opensearch
|
||||
# Path to log files:
|
||||
path.logs: /var/log/opensearch
|
||||
@@ -0,0 +1,40 @@
|
||||
cluster.name: kal-cluster
|
||||
node.name: opensearch-2
|
||||
node.roles: [ cluster_manager, data ]
|
||||
cluster.initial_cluster_manager_nodes: ["opensearch-cluster_manager"]
|
||||
discovery.seed_hosts: ["opensearch-1.sailor.com", "opensearch-2.sailor.com", "opensearch-3.sailor.com"]
|
||||
network.host: 0.0.0.0
|
||||
http.port: 9200
|
||||
plugins.security.nodes_dn:
|
||||
- "CN=opensearch-1.sailor.com,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
- "CN=opensearch-2.sailor.com,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
- "CN=opensearch-3.sailor.com,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
plugins.security.ssl.transport.keystore_filepath: /etc/opensearch/ssl/keystore.jks
|
||||
plugins.security.ssl.transport.keystore_password: Passw0rd
|
||||
plugins.security.ssl.transport.keystore_keypassword: Passw0rd
|
||||
plugins.security.ssl.transport.truststore_filepath: /etc/opensearch/ssl/truststore.jks
|
||||
plugins.security.ssl.transport.truststore_password: Passw0rd
|
||||
transport.ssl.enforce_hostname_verification: false
|
||||
|
||||
plugins.security.ssl.http.enabled: true #Whether to enable TLS on the REST layer. If enabled, only HTTPS is allowed. Optional. Default is false.
|
||||
plugins.security.ssl.http.keystore_filepath: /etc/opensearch/ssl/keystore.jks
|
||||
plugins.security.ssl.http.keystore_password: Passw0rd
|
||||
plugins.security.ssl.http.keystore_keypassword: Passw0rd
|
||||
plugins.security.ssl.http.truststore_filepath: /etc/opensearch/ssl/truststore.jks
|
||||
plugins.security.ssl.http.truststore_password: Passw0rd
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "EMAILADDRESS=medik19999@mail.ru,CN=grigory,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
|
||||
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/ssl/node1.pem
|
||||
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/ssl/node1-key.pem
|
||||
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/ssl/root-ca.pem
|
||||
plugins.security.ssl.transport.enforce_hostname_verification: false
|
||||
plugins.security.ssl.http.enabled: true
|
||||
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/ssl/node1.pem
|
||||
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/ssl/node1-key.pem
|
||||
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/ssl/root-ca.pem
|
||||
|
||||
# Path to directory where to store the data (separate multiple locations by comma):
|
||||
path.data: /var/lib/opensearch
|
||||
# Path to log files:
|
||||
path.logs: /var/log/opensearch
|
||||
@@ -0,0 +1,32 @@
|
||||
cluster.name: kal-cluster
|
||||
node.name: opensearch-2
|
||||
node.roles: [ cluster_manager, data ]
|
||||
cluster.initial_cluster_manager_nodes: ["opensearch-cluster_manager"]
|
||||
discovery.seed_hosts: ["opensearch-1.sailor.com", "opensearch-2.sailor.com", "opensearch-3.sailor.com"]
|
||||
network.host: 0.0.0.0
|
||||
http.port: 9200
|
||||
plugins.security.nodes_dn:
|
||||
- "CN=opensearch-1.sailor.com,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
- "CN=opensearch-2.sailor.com,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
- "CN=opensearch-3.sailor.com,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
plugins.security.ssl.transport.keystore_filepath: /etc/opensearch/ssl/keystore.jks
|
||||
plugins.security.ssl.transport.keystore_password: Passw0rd
|
||||
plugins.security.ssl.transport.keystore_keypassword: Passw0rd
|
||||
plugins.security.ssl.transport.truststore_filepath: /etc/opensearch/ssl/truststore.jks
|
||||
plugins.security.ssl.transport.truststore_password: Passw0rd
|
||||
|
||||
plugins.security.ssl.http.enabled: true #Whether to enable TLS on the REST layer. If enabled, only HTTPS is allowed. Optional. Default is false.
|
||||
plugins.security.ssl.http.keystore_filepath: /etc/opensearch/ssl/keystore.jks
|
||||
plugins.security.ssl.http.keystore_password: Passw0rd
|
||||
plugins.security.ssl.http.keystore_keypassword: Passw0rd
|
||||
plugins.security.ssl.http.truststore_filepath: /etc/opensearch/ssl/truststore.jks
|
||||
plugins.security.ssl.http.truststore_password: Passw0rd
|
||||
plugins.security.authcz.admin_dn:
|
||||
- "EMAILADDRESS=medik19999@mail.ru,CN=grigory,OU=Lab,O=Sailor Lab,L=Moscow,ST=Moscow,C=RU"
|
||||
|
||||
|
||||
|
||||
# Path to directory where to store the data (separate multiple locations by comma):
|
||||
path.data: /var/lib/opensearch
|
||||
# Path to log files:
|
||||
path.logs: /var/log/opensearch
|
||||
@@ -1,17 +0,0 @@
|
||||
cluster.name: kal-cluster # Имя кластера
|
||||
node.name: opensearch-1 # Имя ноды кластера
|
||||
|
||||
# Включение плагина безопасности для шифрования трафика между нодами
|
||||
plugins.security.ssl.transport.keystore_filepath: /etc/opensearch/config/ssl/keystore.jks # Путь к файлу keystore.jks, который содержит ключи к сертификатам
|
||||
plugins.security.ssl.transport.keystore_password: MyCertPassword # Пароль от кейстора
|
||||
plugins.security.ssl.transport.keystore_keypassword: MyCertPassword # Пароль от приватного ключа внутри кейстора
|
||||
plugins.security.ssl.transport.truststore_filepath: /etc/opensearch/config/ssl/truststore.jks # Путь к хранилищу сертификатов
|
||||
plugins.security.ssl.transport.truststore_password: MyCertPassword # Пароль от хранилища сертификатов
|
||||
|
||||
#Включение плагина безопасности для шифрования трафика между дашбордом и опенсерчом
|
||||
#plugins.security.ssl.http.enabled: # Включение шифрования при обращении к REST api. По умолчанию выключено. При включении http будет принудительно отключен и всегда будет использоваться https
|
||||
plugins.security.ssl.http.keystore_filepath: /etc/opensearch/config/ssl/keystore.jks # Путь к файлу keystore.jks, который содержит ключи к сертификатам
|
||||
plugins.security.ssl.http.keystore_password: MyCertPassword # Пароль от кейстора
|
||||
plugins.security.ssl.http.keystore_keypassword: MyCertPassword # Пароль от приватного ключа внутри кейстора
|
||||
plugins.security.ssl.http.truststore_filepath: /etc/opensearch/config/ssl/truststore.jks # Путь к хранилищу сертификатов
|
||||
plugins.security.ssl.http.truststore_password: MyCertPassword # Пароль от хранилища сертификатов
|
||||
@@ -0,0 +1,13 @@
|
||||
Установка из тарбола завершилась тем что я не разложил бинарники логи и тд по папкам. Так же все напутал с правами, юзерами, группами и т.д. Секурити плагин не смог прочитать кейстор, видимо что то я сделал неправильно
|
||||
Попробуем установить его через апт завтра. Так же откатимся в хотелках и просто сгенерим сертификаты, без кестора и трастстора
|
||||
|
||||
20/04/2026 Установка через апт работает. Но проблема с сертификатами остается. Смиряемся и откатываемся. Возможно я генерю сертификаты не правильно. Из важного сертификаты надо генерить на 1 ноде. А потом раскидать все это дело по узлам.
|
||||
Из важного записать все ноды в файлы хостс или поднять свой днс
|
||||
|
||||
27.04.2026 Решил поднимать свой днс. Помучил нейронки. Из предлженных вариантов только powerdns имеет апи и тераформ провайдера. Подолбится ли с базовой инфрой? Или попытатся обойтись костылями?
|
||||
04.05.2026 Днс сработал и решил 1 проблему. Как приятно держать свою инфру. Выяснил что с винды не создавалась тачка потому как был включен впн, а я забыл что прокс виртуальный с винды и трафик тунелируется через вмваре бридж прямо в тунель. Собрал кластер без секюрити плагина. Установил дашборду. Столкнулся с пробелмой авторизации. Пока отключил все настройки безопасности на серче и дашборде.
|
||||
Шаг 0 выполнен. Теперь надо поднять все то же самое но с включенным секьюрити плагином. И прокинуть пользаков в опенсерч.
|
||||
Так же можно задуматься какие логи я буду писать в опенсерч. Для начала можно попробовать напрямую логи самого серча
|
||||
Для сбора используем fluenbit. Шаг 0 заставить это как то работать
|
||||
|
||||
На заметку поискать мб какую то Пошечку для автоматизации выпуска сертификатов и их доставки на сервера
|
||||
@@ -0,0 +1,2 @@
|
||||
Ты devops инженер. Твоя основная специальность это автоматизация и настройка серверов.
|
||||
Ты занят настройкой opensearch.
|
||||
@@ -1,10 +0,0 @@
|
||||
Test dosck
|
||||
|
||||
- list 1
|
||||
- list 2
|
||||
|
||||
!!! note
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
@@ -0,0 +1,18 @@
|
||||
[Unit]
|
||||
Description=Gitea (Git with a cup of tea)
|
||||
After=network.target
|
||||
Wants=postgresql.service
|
||||
After=postgresql.service
|
||||
[Service]
|
||||
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
|
||||
# LimitNOFILE=524288:524288
|
||||
RestartSec=2s
|
||||
Type=simple
|
||||
User=git
|
||||
Group=git
|
||||
WorkingDirectory=/var/lib/gitea/
|
||||
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
|
||||
Restart=always
|
||||
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,142 @@
|
||||
# Нструкция по установке Gitea
|
||||
Примитивная инструкция по установке gitea.
|
||||
Ссылка на официальную документацию https://docs.gitea.com/next/installation/install-from-binary
|
||||
Требования и версии
|
||||
Ubuntu 22.04
|
||||
postgresql 17.9
|
||||
gitea main-nightly ( 1.27.0)
|
||||
git => 2.0
|
||||
## Подготовка базы
|
||||
Установим и настроем базу данных postgresql
|
||||
1) Добавим репозиторий и ключ
|
||||
```
|
||||
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
|
||||
sudo apt update
|
||||
|
||||
```
|
||||
2) Установим postgresql, запустим и добавим в автозагрузку
|
||||
```
|
||||
sudo apt install postgresql-17
|
||||
sudo systemctl start postgresql
|
||||
sudo systemctl enable postgresql
|
||||
|
||||
```
|
||||
3) Настроим файл postgesql.conf для подключения. Файл лежит /etc/postgresql/17/main/postgresql.conf (17 это версия postgesql)
|
||||
Если сторка закоментирована, то раскоментировать и добавить адрес сервера на котором будет развернута gitea
|
||||
```
|
||||
listen_addresses = 'localhost, 203.0.113.3'
|
||||
```
|
||||
4) Создадим юзера для БД. Для создания нового юзера надо подключится к Субд под дефолтным юзером postges. После ROLE идет имя юзера. Требуется заменить дефолтные на свои.
|
||||
```
|
||||
su -c "psql" - postgres
|
||||
CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea';
|
||||
```
|
||||
5) Создадим БД для gitea. Владельцем базы назначим свежесозданного юзера. Кодировка базы UTF8. Сменить имя базы на свою
|
||||
```
|
||||
CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
|
||||
```
|
||||
1) Разрешим подключаться к базе пользователю к созданной выше базе данных, добавив следующее правило аутентификации в pg_hba.conf. Файл лежит /etc/postgresql/17/main/
|
||||
```
|
||||
local giteadb gitea scram-sha-256 #Для локальной базы данных
|
||||
host giteadb gitea 192.0.2.10/32 scram-sha-256 #Для удаленной базы данных
|
||||
```
|
||||
1) На сервере Gitea проверим подключение к базе данных.
|
||||
|
||||
Для локальной базы данных:
|
||||
```
|
||||
psql -U gitea -d giteadb
|
||||
```
|
||||
Для удаленной базы данных:
|
||||
```
|
||||
psql "postgres://gitea@203.0.113.3/giteadb"
|
||||
```
|
||||
## Установка
|
||||
1) Обновим систему
|
||||
```
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
```
|
||||
2) Скачаем бинарник и выдадим ему права на исполнение.
|
||||
```
|
||||
wget -O gitea https://dl.gitea.com/gitea/main-nightly/gitea-main-nightly-linux-amd64
|
||||
|
||||
```
|
||||
```
|
||||
sudo chmod gitea
|
||||
```
|
||||
3) Проверим подпись бинарника. В репозитории есть GPG ключ.
|
||||
```
|
||||
gpg --keyserver hkps://keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
|
||||
wget https://dl.gitea.com/gitea/main-nightly/gitea-main-nightly-linux-386.asc
|
||||
gpg --verify gitea-main-nightly-linux-amd64.asc gitea-main-nightly-linux-amd64
|
||||
```
|
||||
4) НА сервере должен быть установлен git версии => 2.0. Убедимся что git подходящей версии
|
||||
```
|
||||
git --version
|
||||
```
|
||||
5) Добавим локального юзера для запуска gitea.
|
||||
```
|
||||
adduser \
|
||||
--system \
|
||||
--shell /bin/bash \
|
||||
--gecos 'Git Version Control' \
|
||||
--group \
|
||||
--disabled-password \
|
||||
--home /home/git \
|
||||
git
|
||||
```
|
||||
1) Создадим необходимые для работы директории и выдадим созданному юзеру права на них. Права 770 на директорию /etc/gitea выдаются только для первоначальной настройки.
|
||||
```
|
||||
mkdir -p /var/lib/gitea/{custom,data,log}
|
||||
chown -R git:git /var/lib/gitea/
|
||||
chmod -R 750 /var/lib/gitea/
|
||||
mkdir /etc/gitea
|
||||
chown root:git /etc/gitea
|
||||
chmod 770 /etc/gitea
|
||||
```
|
||||
1) Создадим системный юнит для запуска gitea как сервиса systemd. Создадим файл юнита по пути /etc/systemd/system/gitea.service
|
||||
Добавим конфиг юнита
|
||||
```
|
||||
[Unit]
|
||||
Description=Gitea (Git with a cup of tea)
|
||||
After=network.target
|
||||
Wants=postgresql.service
|
||||
After=postgresql.service
|
||||
[Service]
|
||||
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
|
||||
# LimitNOFILE=524288:524288
|
||||
RestartSec=2s
|
||||
Type=simple
|
||||
User=git
|
||||
Group=git
|
||||
WorkingDirectory=/var/lib/gitea/
|
||||
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
|
||||
Restart=always
|
||||
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
Перечитаем список юнитов
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
Запустим gitea
|
||||
```
|
||||
sudo systemctl enable gitea --now
|
||||
```
|
||||
## Первоначальная настройка
|
||||
1) Для первоначальной настройки нужно зайти по адресу нашего сервера на порте 3000
|
||||
http://ip-addr-or-fqdn:3000/
|
||||
Откроется веб странциа первоначальной настройки, где нужно:
|
||||
1) указать юзера, пароль и БД, которую мы будем использовать.
|
||||
2) Указать домен и URl сервера
|
||||
3) Зарегестрировать администратора.
|
||||
Если забудем логи\пароль админа, то его можно сменить через консоль сервера
|
||||
```
|
||||
gitea admin user change-password --username user --password password --config /etc/gitea/app.ini:
|
||||
```
|
||||
4) Так же стоит запретить самостоятельную регистрацию на сервер
|
||||
После первоначальной настройки меняем права на директорию /etc/gitea на 750
|
||||
```
|
||||
chmod 750 /etc/gitea
|
||||
```
|
||||
@@ -0,0 +1,3 @@
|
||||
### Записик для изучения модулей в terraform
|
||||
09.05.2026
|
||||
Узнал что существуют модули
|
||||
@@ -0,0 +1,12 @@
|
||||
# Переменные в terraform
|
||||
Переменные - значения, которые передаются пользователем и могут менятся в зависимости от задачи. Существует два вида переменных.
|
||||
1) Входящие - переменные, которые поступают от пользователя.
|
||||
2) Исходящие - определяются в результате работы
|
||||
## Входящие переменные
|
||||
Для использования переменных их нужно сначало объявить. Для соблюдения чистоты рекомендуется делать это в отдельном файле variable.tf
|
||||
Объявив переменную мы можем вызвать ее в ресурсе используюя ее имя.
|
||||
Так же мы можем записывать значения в файл с расширение *.tfvars. Тогда нужно будет при планировании указать ключ -var-file и имя файла
|
||||
```
|
||||
tofu plan -var-file example.tfvars -out example
|
||||
```
|
||||
Создавая файлы переменных с разными значениями, мы можем использовать 1 и тот же код ресурса для разных окружений
|
||||
@@ -0,0 +1,5 @@
|
||||
Манифест - этакая программа, состоящая из HCL кода, для выполнения набора действий и логики. Для читаемости разбивается на файлы.
|
||||
Блок - блок кода в терраформе, который выполняет определенное действие. Если приводить аналогию с програмированием, то это функция.
|
||||
Переменная - изменяемое значение, передается на вход пользователем или на выход программой.
|
||||
Ресурс - блок кода, используемый для создания чего либо. Возможности определяются провайдером.
|
||||
Модуль - готовый набор ресурсов, который мы можем переиспользовать в другом манифесте.
|
||||
@@ -0,0 +1,2 @@
|
||||
# Заметка для запоминания горячих клавиш в Vscode
|
||||
1) Для рендера Markdown ctrl + shift + V. Для того что бы вернуться в редактор нужно нажать еще раз
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
site_name: Documentation demo
|
||||
site_name: Sailor.lab
|
||||
site_url : https://SailorUpiter.github.io/mkdocs
|
||||
repo_url: https://github.com/SailorUpiter/mkdocs.git
|
||||
theme:
|
||||
|
||||
Reference in New Issue
Block a user