воскресенье, 26 апреля 2020 г.

Application Default Credentials (ADC)

Установка ADC позволяет приложениям, работающим с GCP ресурсами и использующим Google API библиотеки, управлять ресурсами GCP через авторизованные API вызовы, используя credentials вашего пользователя. 

Создайте  АDC: $ gcloud auth application-default login

В конце всех действий вы должны получить:
Credentials saved to file: [/home/user/.config/gcloud/application_default_credentials.json]

среда, 22 апреля 2020 г.

Создание образа диска с помощью Packer на примере Google Cloud.

Создаем файл с расширением .json.

Например, ubuntu16.json:

{
    "builders": [ #основные параметры
        {
            "type": "googlecompute",
            "project_id": "infra-5314134",
            "image_name": "reddit-base-{{timestamp}}",
            "image_family": "reddit-base",
            "source_image_family": "ubuntu-1604-lts",
            "zone": "europe-west1-b",
            "ssh_username": "pawwwel",
            "machine_type": "f1-micro"
        }
    ],
    "provisioners": [ #запуск дополнительных скриптов
        {
            "type": "shell",
            "script": "scripts/install_ruby.sh",
            "execute_command": "echo '1' | sudo -S {{.Path}}"
        },
        {
            "type": "shell",
            "script": "scripts/install_mongodb.sh",
            "execute_command": "echo '1' | sudo -S {{.Path}}"
        }
    ]
}

Можно проверить правильность синтаксиса командой:

 packer validate ubuntu16.json

Запустить:

 packer build ubuntu16.json


Если хотим добавить изменяемые параметры:

1. нужно изменить файл

{
    "variables": { #добавить параметры
"project_id": null,
"zone": "europe-wes1-b",
"machine_type": "f1-micro",
"source_image": "null"
},

    "builders": [
        {
            "type": "googlecompute",
            "project_id": "{{ user `project_id` }}",
            "image_name": "reddit-base-{{timestamp}}",
            "image_family": "reddit-base",
            "source_image_family": "{{ user `source_image` }}",
            "zone": "{{ user `zone` }}",
            "ssh_username": "pawwwel",
            "machine_type": "{{ user `machine_type` }}"
        }
    ],
    "provisioners": [
        {
            "type": "shell",
            "script": "scripts/install_ruby.sh",
            "execute_command": "echo '1' | sudo -S {{.Path}}"
        },
        {
            "type": "shell",
            "script": "scripts/install_mongodb.sh",
            "execute_command": "echo '1' | sudo -S {{.Path}}"
        }
    ]
}

2. файл параметров

var.json


"project_id": "infra-5314134",
"source_image": "ubuntu-1604-lts"
}

3. запустить команду на выполнение:

packer build -var-file var.json ubuntu16json

Запустить из консоли создание виртуальной машины:

gcloud compute instances create vm001 --zone=europe-west1-b --machine-type=f1-micro --image=reddit-base-1587491511

суббота, 18 апреля 2020 г.

Install and configure Pritunl

Создаем VPN-сервер Pritunl на базе Linux.

На сайте указана следующая последовательность команд для Ubuntu:

sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list << EOF deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse EOF sudo tee /etc/apt/sources.list.d/pritunl.list << EOF deb http://repo.pritunl.com/stable/apt bionic main EOF sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv E162F504A20CDF15827F718D4B7C549A058F8B6B sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A sudo apt-get update sudo apt-get --assume-yes install pritunl mongodb-server sudo systemctl start pritunl mongodb sudo systemctl enable pritunl mongodb

Но возникает ошибка
gpg: keyserver receive failed: Server indicated a failure
после ввода команды 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv E162F504A20CDF15827F718D4B7C549A058F8B6B sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A


Решается следующим образом:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E162F504A20CDF15827F718D4B7C549A058F8B6B sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A

среда, 8 апреля 2020 г.

Linux netplan

Все конфигурационные файлы Netplan находятся в папке /etc/netplan/. Внутри папки находятся файлы с расширением  yaml.

Редактирование файлов:
1. все интерфейсы можно прописывать в одном файле.
2. нельзя использовать табуляцию, а только пробелы
3. параметры прописывать строго по иерархии

Пример:

network:
  version: 2
  renderer: networkd
  ethernets:
   enp3s0:
    dhcp4: yes
   enp8s0:
    dhcp4: no
    addresses: [ 192.168.1.10/24 ]
    gateway4: 192.168.1.1
    nameservers:
    addresses: [ 8.8.8.8, 8.8.4.4 ]