Работа с OpenStack API с помощью консольных клиентов
Перед началом работы с консольными клиентами OpenStack следует создать пользователя и добавить его в проект в панели управления или с помощью selvpc CLI, а затем установить необходимое программное обеспечение на локальную систему.
Запуск RC-файла
Перед установкой необходимого ПО настройте доступ к проекту из локальной системы и установите переменные среды. Для этого в панели управления:
Перейдите в раздел Доступ в проекте, выберите пользователя и регион облака по умолчанию, скачайте RC-файл.
Примечание: с помощью этого файла можно управлять ресурсами в одном регионе. Для работы с другими регионами вы можете передавать нужное имя ключом
--os-region-name
или менять содержимое переменной окруженияOS_REGION_NAME
.На локальном компьютере перейдите в каталог, в котором лежит файл rc.sh.
Запустите скрипт из этого каталога в том терминале, где будут запускаться утилиты, с помощью команды:
source rc.sh
Введите запрашиваемый пароль OpenStack — пароль пользователя проекта.
Установка ПО
Для установки на локальную систему программного обеспечения, необходимого для работы с консольными клиентами OpenStack, используйте следующие команды.
Примечание: для каждого дистрибутива предназначен свой набор утилит.
Debian 9 / 10 или Ubuntu 16 / 18 / 20 (для python3)
apt update
apt -y install build-essential curl git \
libffi-dev libssl-dev libxml2-dev libxslt1-dev \
python3-pip python3-dev python3-openssl python3-pyasn1
pip3 install -UI pbr setuptools pytz
pip3 install -UI git+https://github.com/openstack/python-openstackclient.git@stable/train
CentOS
yum -y install epel-release
yum -y install gcc git libffi-devel libxslt-devel openssl-devel \
python-pip python-devel
pip install -UI pbr setuptools pytz
pip install -UI git+https://github.com/openstack/python-openstackclient.git@stable/train
Fedora
yum -y install gcc git libffi-devel libxslt-devel openssl-devel \
python-pip python-devel
pip install -UI pbr setuptools pytz
pip install -UI git+https://github.com/openstack/python-openstackclient.git@stable/train
Использование Docker-контейнера с утилитами
Вы можете использовать Docker-контейнер для установки необходимого ПО.
- Установите Docker на своей локальной системе.
Создайте Dockerfile со следующим содержимым:
FROM alpine:3.11 RUN apk add --update --no-cache python3 py3-pip git python3-dev libffi libffi-dev \ openssl openssl-dev build-base iputils bash curl linux-headers && \ apk add py3-cffi py3-tz py3-pbr py3-setuptools && \ pip3 install -UI git+https://github.com/openstack/python-openstackclient.git@stable/ussuri \ git+https://github.com/openstack/python-heatclient.git@stable/ussuri \ git+https://github.com/openstack/python-octaviaclient.git@stable/ussuri \ git+https://github.com/openstack/python-magnumclient.git@stable/ussuri \ && apk del build-base linux-headers python3-dev libffi-dev openssl-dev && rm -rf /var/cache CMD ["sh"]
Для сборки контейнера используйте команду:
docker build -t osc:train .
Запустите Docker из каталога, в котором лежит файл rc.sh:
docker run -ti --rm -v $(PWD):/workspace osc:train
После этого в контейнере можно работать с утилитами, представленными выше. Перед этим запустите внутри docker-контейнера скрипт rc.sh из папки /workspace:
source rc.sh
SSH-ключ
С помощью SSH-ключа можно подключаться к виртуальным машинам по SSH.
Создание SSH-ключа
Для создания SSH-ключа введите:
openstack keypair create <key> --private-key <file>
chmod 600 <file>
Эта команда выведет в файл приватный ключ, с помощью которого можно будет подключаться к виртуальным машинам по SSH. Команда соединения в этом случае будет выглядеть так:
ssh -i <file> <server IP>
Обратите винмание! Если не указать --private-key <file>
, то содержимое будет выведено на экран.
Если у вас уже есть пара «приватный ключ – публичный ключ», можно указать публичный ключ в качестве аргумента:
openstack keypair create <key> --pub-key <path to public key>
Например:
openstack keypair create my_key --pub-key ~/.ssh/id_rsa.pub
Добавление SSH-ключа
SSH-ключи можно также добавлять в панели управления в разделе Доступ в проекте.