вторник, 28 ноября 2023 г.

gitlab runner - Error response from daemon: stat /var/lib/docker/overlay2/xxx: no such file or directory

 i had issue with gitlab runner.

Error response from daemon: stat /var/lib/docker/overlay2/9bc19ea797a618f993714f578e3a08b5e4528f6f524e6fe5efffb312927704a7: no such file or directory

solution:

docker system pruna -a

systemctl stop docker

systemctl start docker

суббота, 11 ноября 2023 г.

gitlan-runner Could not resolve host: gitlab.com fix


I had issue when running job via gitlab-runner.

Could not resolve host: gitlab.com и dial tcp: lookup docker on 8.8.8.8:53: no such host

Solution:
 add marked red and restart runner.

systemctl restart gitlab-runner


concurrent = 1
check_interval = 0
shutdown_timeout = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "your-runner"
url = "https://gitlab.com"
id = xxxx
token = "token"
token_obtained_at = 2023-11-11T10:08:46Z

token_expires_at = 0001-01-01T00:00:00Z

executor = "docker"

[runners.cache]
MaxUploadedArchiveSize = 0
[runners.docker]
tls_verify = false
image = "docker:dind"
privileged = true
dns = ["8.8.8.8"]
network_mode = "host"
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache","/var/run/docker.sock:/var/run/docker.sock"]
shm_size = 0
network_mtu = 0

среда, 16 августа 2023 г.

swagger nginx location close from external



location ~* ^/(api/swagger-ui) {
proxy_pass https://10.204.11.123:443;
include sites-available/includes/proxy.conf;
allow 10.186.35.0/24;
allow 10.204.11.0/24;
allow 10.204.1.0/24;
error_page 403 =404 /uri;
deny all;
}


nginx ingress server-snippet example

location ~* ^/api/swagger-ui(.) {
  allow XX.107.99.176;
  allow 10.186.33.0/24;
  allow 10.186.32.0/24;
  allow 10.186.35.0/24;
  allow 10.204.11.0/24;
  allow 10.204.1.0/24;
  deny all;
  return 403;  
}

воскресенье, 13 августа 2023 г.

prometheus systemd unit file

 [Unit]

Description=Prometheus

Wants=network-online.target

After=network-online.target


[Service]

#ExecStart=/etc/prometheus/prometheus

ExecStart=/etc/prometheus/prometheus \

--config.file=/etc/prometheus/prometheus.yml \

--storage.tsdb.path=/var/prometheus/data \

--storage.tsdb.retention.time=60d


WorkingDirectory=/etc/prometheus/

Restart=on-failure

User=root

Group=root


[Install]

WantedBy=multi-user.target

пятница, 4 августа 2023 г.

среда, 12 июля 2023 г.

loki compactor remove old chunks

 auth_enabled: false

chunk_store_config:

  max_look_back_period: 0s

compactor:

  delete_request_cancel_period: 10m # don't wait 24h before processing the delete_request

  retention_enabled: true # actually do the delete

  compaction_interval: 10m

  retention_delete_delay: 2h # wait 2 hours before actually deleting stuff

  shared_store: filesystem

  working_directory: /data/loki/boltdb-shipper-compactor

ingester:

  chunk_block_size: 262144

  chunk_idle_period: 3m

  chunk_retain_period: 1m

  lifecycler:

    ring:

      replication_factor: 1

  max_transfer_retries: 0

  wal:

    dir: /data/loki/wal

limits_config:

  retention_period: 30d # Keep 30 days

  enforce_metric_name: false

  max_entries_limit_per_query: 5000

  reject_old_samples: true

  reject_old_samples_max_age: 168h

memberlist:

  join_members:

  - 'loki-memberlist'

schema_config:

  configs:

  - from: '2020-10-24'

    index:

      period: 24h

      prefix: index_

    object_store: filesystem

    schema: v11

    store: boltdb-shipper

server:

  grpc_listen_port: 9095

  http_listen_port: 3100

storage_config:

  boltdb_shipper:

    active_index_directory: /data/loki/boltdb-shipper-active

    cache_location: /data/loki/boltdb-shipper-cache

    cache_ttl: 24h

    shared_store: filesystem

  filesystem:

    directory: /data/loki/chunks

table_manager:

  retention_deletes_enabled: true

  retention_period: 672h

четверг, 29 июня 2023 г.

JAVA добавление своего ключа в keystore

конвертируем ключ из *.p12 в pem формат.


openssl pkcs12 -in certificate.p12 -out cert.pem -clcerts -nokeys

openssl pkcs12 -in certificate.p12 -out private.key -nocerts -nodes


список ключей в keystore

keytool -list -v -trustcacerts -cacerts -storepass changeit

импорт своего ключа в дефолтный keystore

keytool -import -trustcacerts -cacerts -alias test -file /root/cert.pem -storepass changeit


понедельник, 19 декабря 2022 г.

rabbitmq create queue

 Создание очереди в rabbitmq 


rabbitmq-plugins enable rabbitmq_management

rabbitmqadmin -u admin -p your password -V / declare queue name=job-start-notification-service-q durable=true

четверг, 11 августа 2022 г.

mysqldump экспорт базы без пароля/mysqldump export without password

 Для того чтобы экспортировать БД без пароля, например использованием bash скрипта.


1. создаем файл .my.cnf в домашней директории с содержанием.

[mysqldump]
user="db_user"
password="yourpass"
host="localhost"

2.  mysqldump --defaults-file=.my.cnf -u db_user test_database > /home/user/dump_`date +%d%b%Y`.sql

суббота, 30 апреля 2022 г.

docker build замена sh на bash/docker build use bash instead of sh

Была проблема с образом nginx unpriveleged, по умолчанию запускается оболочка sh, помогло добавление в конце Dockerfile следующих строк.


USER root

RUN rm /bin/sh && ln -s /bin/bash /bin/sh

USER 101

понедельник, 25 апреля 2022 г.

Прокси для yum примеры

 в /etc/yum.conf или в /yum/repos.d/your-external.repo добавить эти значения.


proxy=https://YOUR_IP:3128

proxy=http://YOUR_IP:3128


или 


export http_proxy=http://YOUR_IP:3128

export https_proxy=https://YOUR_IP:3128

export no_proxy=localhost,127.0.0.0/8,10.201.0.0/16,.domain.kz,.domain2.kz,kz

понедельник, 24 января 2022 г.

gitlab.com CI/CD Host key verification failed при авторизации по SSH

Была проблема с авторизацией на сервер по SSH. В джобе CI/CD была ошибка Host key verification failed.


Проблема решилась добавлением StrictHostKeyChecking no в конфиг sshd

.job_template: &main_job
  script:
    - "which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )"
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY1" | tr -d '\r' | ssh-add -
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - echo "$SSH_KNOWN_HOSTS1" >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
    - echo "deploy to $D_SERVER"
    - echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
    - ssh $D_SERVER "docker stop $CI_PROJECT_NAME" || true
    - ssh $D_SERVER "docker rm $CI_PROJECT_NAME" || true



пятница, 21 января 2022 г.

PostgreSQL изменить папку для баз данных

 Необходимо было изменить папку хранения БД в PostgreSQL


Решение:

В /var/lib/pgsql/data/postgresql.conf  находим директиву data_directory и меняем на свое значение.


Пример

data_directory = 'pg-data'

вторник, 14 декабря 2021 г.

OpenShift 4.9 oc login -u

 Необходимо было настроить авторизацию через oc cli


1. openssl genrsa 2048 > ca-key.pem


openssl req -new -x509 -nodes -days 365000 \

   -key ca-key.pem \

   -out ca-cert.pem


2. oc create secret tls admin --cert=ca-cert.crt --key=ca-key.pem -n openshift-config

суббота, 20 ноября 2021 г.

postgreSQL function uuid_generate_v4() does not exist

Была ошибка function uuid_generate_v4() does not exist при запуске микросервиса на Go.


Решение:

1. CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

2. \CONNECT my_database

3.  CREATE EXTENSION "uuid-ossp";

PostgreSQL grant access примеры

 1. Grant CONNECT to the database:

GRANT CONNECT ON DATABASE database_name TO username;

2. Grant USAGE on schema:

GRANT USAGE ON SCHEMA schema_name TO username;

3. Grant on all tables for DML statements: SELECT, INSERT, UPDATE, DELETE:

GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA schema_name TO username;

4. Grant all privileges on all tables in the schema:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO username;

5. Grant all privileges on all sequences in the schema:

GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA schema_name TO username;

6. Grant all privileges on the database:

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

7. Grant permission to create database:

ALTER USER username CREATEDB;

8. Make a user superuser:

ALTER USER myuser WITH SUPERUSER;

9. Remove superuser status:

ALTER USER username WITH NOSUPERUSER;

Those statements above only affect the current existing tables. To apply to newly created tables, you need to use alter default. For example:

ALTER DEFAULT PRIVILEGES
FOR USER username
IN SCHEMA schema_name
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO username;

dropdb postgresql удалить базу

 Необходимо было удалить БД в postgreSQL, помогла утитита dropdb.


Пример:

dropdb -h x.x.x.x -U postgres -i -e database_name

вторник, 16 ноября 2021 г.

nmcli статический IP адрес

Необходимо было использовать статический IP в LiveCD RedHat CoreOS.


Решение:


nmcli con mod "Wired connection 1" ipv4.addresses 10.160.1.x/24

nmcli con mod "Wired connection 1" ipv4.gateway 10.160.1.x

nmcli con mod "Wired connection 1" ipv4.dns "10.201.1.x, 10.201.1.x"

nmcli con mod "Wired connection 1" ipv4.method manual 

nmcli conn show

воскресенье, 24 октября 2021 г.

Kubernetes 1.22 NFS mount example

Понадобилось смонтировать папку в k8s через NFS.


1. Поднимаем NFS-server


Пример /etc/exports

 /space/minio *(rw,sync,no_root_squash)


Прописываем команду

exportfs -rav - перемонтировать папки

exportfs -s - просмотр списка


2. Пример PV/PVC



kind: PersistentVolume
apiVersion: v1
metadata:
  name: redis-pv
spec:
  storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
nfs:
  path: /space/minio
  server: test.srv
  readOnly: false



apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: redis-pvc
  namespace: test
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi