Введение
Из этого руководства вы узнаете как использовать hcloud-cli. Оно включает в себя создание, просмотр и удаление серверов и более сложные сценарии, такие как подключение тома к серверу.
Необходимо
-
Токен Hetzner Cloud API
- Базовые знания о Hetzner Cloud
- Предполагается, что вы знаете что такое сервер, образ, тип сервера и том.
- Ознакомтесь с Hetzner Cloud Console по адресу https://console.hetzner.cloud, выберите проект и создайте новый API-токен.
- Базовые знания о Hetzner Cloud
-
установленный hcloud-cli
Шаг 1 — Базовое использование
После установки вы должны открыть терминал и просто набрать:
hcloud
Вы должны увидеть обзор всех доступных команд, таких как server
, volume
или context
.
Вы можете посмотреть текущую версию hcloud-cli, выполнив команду:
hcloud version
Большинство команд имеют некоторые подкоманды, такие как:
hcloud server list
Вы можете просмотреть все доступные подкоманды какой-то команды, просто набрав эту команду. Ниже пример вывода для команды hcloud server
:
Usage:
hcloud server
hcloud server [command]
Available Commands:
add-label Add a label to a server
attach-iso Attach an ISO to a server
change-type Change type of a server
create Create a server
create-image Create an image from a server
delete Delete a server
describe Describe a server
detach-iso Detach an ISO from a server
disable-backup Disable backup for a server
disable-protection Disable resource protection for a server
disable-rescue Disable rescue for a server
enable-backup Enable backup for a server
enable-protection Enable resource protection for a server
enable-rescue Enable rescue for a server
list List servers
poweroff Poweroff a server
poweron Poweron a server
reboot Reboot a server
rebuild Rebuild a server
remove-label Remove a label from a server
reset Reset a server
reset-password Reset the root password of a server
set-rdns Change reverse DNS of a server
shutdown Shutdown a server
ssh Spawn an SSH connection for the server
update Update a server
Flags:
-h, --help help for server
Global Flags:
--poll-interval duration Interval at which to poll information, for example action progress (default 500ms)
Use "hcloud server [command] --help" for more information about a command.
Если вы хотите увидеть все доступные параметры подкоманды вы всегда можете использовать опцию --help
. Ниже пример вывода команды hcloud server list --help
:
Displays a list of servers.
Output can be controlled with the -o flag. Use -o noheader to suppress the
table header. Displayed columns and their order can be set with
-o columns=backup_window,datacenter (see available columns below).
Columns:
- backup_window
- datacenter
- id
- ipv4
- ipv6
- labels
- location
- locked
- name
- protection
- rescue_enabled
- status
- type
- volumes
Usage:
hcloud server list [FLAGS]
Flags:
-h, --help help for list
-o, --output stringArray output options: noheader|columns=...
-l, --selector string Selector to filter by labels
Global Flags:
--poll-interval duration Interval at which to poll information, for example action progress (default 500ms)
Шаг 2 - Добавление контекста
Прежде чем вы сможете начать использовать hcloud-cli, вам необходимо сделать доступным контекст. Контекст - это специальный API токен из Cloud консоли Hetzner. Мы выбрали context
в качестве ссылки на kubectl
для Kubernetes. Таким образом, вы можете принять, что в нашем hcloud-cli контекст является проектом в Hetzner Cloud Console.
Вы можете добавить столько контекстов, сколько вам необходимо.
Создадим hcloud-cli контекст командой hcloud context create
и присвоим ему любое имя.
hcloud context create my-super-project
Эта команда создаст новый контекст с именем my-super-project
. После этого необходимо будет ввести ваш API токен. Имейте в виду, что пока вы вводите токен, он не виден. После ввода токена нажмите Enter. Вы должны увидеть подтверждающее сообщение Context my-super-project created and activated
.
Увидеть активный контекст вы можете выполнив команду:
hcloud context list
Вывод команды должен быть примерно следующий:
ACTIVE NAME
* my-super-project
Поздравляю! Вы создали свой первый контекст, переходим к следующему шагу!
Шаг 3 - Добавление сервера
Вы уже настроили свой первый контекст. Теперь создадим новый сервер командой hcloud server create
!
Прежде всего необходимо решить какой сервер вы хотите создать. Список всех доступных серверов можно вывести командой:
hcloud server-type list
Вывод команды будет аналогичен следующему:
ID NAME CORES MEMORY DISK STORAGE TYPE
1 cx11 1 2.0 GB 20 GB local
[...]
Мы создадим самый простой сервер CX11
. Пока держим это в памяти, эта информация будет необходима чуть позже.
Нам понадобится образ системы, на котором будет основан сервер. В Hetzner Cloud есть различные образы систем. Просмотреть все доступные образы можно командой hcloud image list
.
Вы можете взять любой образ, выберем, например, ubuntu-18.04
.
Теперь у нас есть все, что необходимо для создания базового сервера!
Команда для создания сервера hcloud server create
, если вы хотите создать сервер типа CX11
из образа ubuntu-18.04
просто выполните следующую команду в консоли:
hcloud server create --image ubuntu-18.04 --type cx11 --name my-cool-server
Круто! Только что вы создали сервер my-cool-server
! После окончания его создания вы должны увидеть примерно следующее:
Waiting for server 1234 to have started... done
Server 1234 created
IPv4: <10.0.0.1>
Root password: TmRsdC3NCgHAbnf9f3rq
Теперь вы можете подключиться к нему через SSH, используя пароль root! Для безопасности всегда рекомендуется использовать авторизацию по ключам setup key based ssh-access.
Шаг 4 - Описание сервера
На предыдущем шаге мы создали сервер.
Чтобы просмотреть о нем более подробную информацию можно использовать команду hcloud server describe
.
hcloud server describe my-cool-server
Подробная информация о сервере:
ID: 1234
Name: my-cool-server
Status: running
Created: Wed Mar 6 15:17:22 CET 2019 (17 minutes ago)
Server Type: cx11 (ID: 1)
ID: 1
Name: cx11
Description: CX11
Cores: 1
Memory: 2 GB
Disk: 20 GB
Storage Type: local
Public Net:
IPv4:
IP: <10.0.0.1>
Blocked: no
DNS: static.10.101.203.116.clients.your-server.de
IPv6:
IP: <2001:db8::/64>
Blocked: no
Floating IPs:
No Floating IPs
Volumes:
- ID: 1986518
Name: my-volume
Size: 123 GB
Image:
ID: 168855
Type: system
Status: available
Name: ubuntu-18.04
Description: Ubuntu 18.04
Image size: -
Disk size: 5 GB
Created: Wed May 2 13:02:30 CEST 2018 (10 months ago)
OS flavor: ubuntu
OS version: 18.04
Rapid deploy: yes
Datacenter:
ID: 2
Name: nbg1-dc3
Description: Nuremberg 1 DC 3
Location:
Name: nbg1
Description: Nuremberg DC Park 1
Country: DE
City: Nuremberg
Latitude: 49.452102
Longitude: 11.076665
Traffic:
Outgoing: 0 B
Ingoing: 0 B
Included: 22 TB
Backup Window: Backups disabled
Rescue System: disabled
ISO:
No ISO attached
Protection:
Delete: no
Rebuild: no
Labels:
No labels
Шаг 5 - Список всех серверов
Вы хотите просмотреть все серверы в вашем контексте?
Это можно сделать с помощью команды hcloud server list
. После выполнения команды вы должны увидеть примерно следующее:
ID NAME STATUS IPV4 IPV6 DATACENTER
1234 my-cool-server running <10.0.0.1> <2001:db8::/64> nbg1-dc3
Шаг 6 - Удаление сервера
Хотите удалить сервер? Нет проблем! Для этого существует команда hcloud server delete
!
hcloud server delete my-cool-server
После этого вы получите подтверждение:
Server 1234 deleted
Шаг 7 - Создание Тома и подключение его к серверу
В предыдущих шагах мы рассмотрели как можно создавать, просматривать и удалять серверы. Теперь я хочу показать вам немного более сложный пример. Мы создадим сервер, а затем создадим Том и подключим его к серверу!
Прежде всего создаем сервер:
hcloud server create --image ubuntu-18.04 --type cx11 --name my-cool-server
Waiting for server 1234 to have started... done
Server 1234 created
IPv4: <10.0.0.1>
Root password: TmRsdC3NCgHAbnf9f3rq
Теперь создаем Том. Команда создания Тома похожа на команду создания сервера:
hcloud volume create --size 123 --name my-volume --server my-cool-server
С помощью данной команды мы создадим Том размером 123 Гб с именем my-volume
и примонтируем его к серверу my-cool-server
.
У вас должен быть похожий вывод:
1s [====================================================================] 100%
Waiting for volume 123 to have been attached to server 1234... done
Volume 123 created
Теперь вы можете отмонтировать том от сервера, выполнив команду:
hcloud volume detach my-volume
Поздравляю! Вы создали Том и примонтировали его к серверу!
Заклчение
Мы разобрали как использовать hcloud-cli. Мы рассмотрели как создавать, просматривать и удалять серверы, а также как выполнять более сложные сценарии, такие как присоединение Тома к серверу. Вы можете вывести дополнительную справку, добавляя --help
к каждой команде. Если вам нужна более подробная информация, просто задайте вопрос в нашем Github Репозитории.