Telegram
+998 (71) 205-80-00

Ansible для serverplus: инфраструктура и настройка серверов

Опубликовано: 25.07.26
Поделиться

Ansible для serverplus

С Ansible на serverplus работают на двух уровнях. Во-первых, коллекция openstack.cloud создаёт и удаляет саму инфраструктуру (серверы, ключи, сети) декларативно. Во-вторых, обычные плейбуки по SSH настраивают уже поднятые серверы. А динамический inventory берёт список серверов прямо из OpenStack — не нужно вручную вести список хостов.

Установка

pip install "ansible>=9" openstacksdk
ansible-galaxy collection install openstack.cloud

ansible --version

Доступ берётся из того же ~/.config/openstack/clouds.yaml, что и для CLI/Terraform. Модули читают его по имени облака (переменная OS_CLOUD).

Создание сервера

Плейбук create.yml — запускается локально, обращается к API serverplus:

- hosts: localhost
  gather_facts: false
  environment:
    OS_CLOUD: serverplus
  tasks:
    - name: SSH key
      openstack.cloud.keypair:
        name: ansible-key
        public_key_file: ~/.ssh/id_rsa.pub

    - name: Server
      openstack.cloud.server:
        name: web-1
        image: "Ubuntu 22.04"
        flavor: m1.small
        key_name: ansible-key
        network: private
        security_groups: [default]
        auto_ip: true
      register: srv

    - debug:
        var: srv.server.access_ipv4

Про сеть. Как и везде: сеть сервера должна иметь роутер с внешним шлюзом, иначе не будет интернета.

Динамический inventory

Файл inventory.openstack.yml — Ansible сам подтянет ваши серверы из OpenStack:

plugin: openstack.cloud.openstack
expand_hostvars: true
all_projects: false
export OS_CLOUD=serverplus
ansible-inventory -i inventory.openstack.yml --list
ansible -i inventory.openstack.yml all -m ping

Настройка серверов по SSH

Дальше — обычный Ansible. Пример site.yml: установить и запустить nginx:

- hosts: all
  become: true
  tasks:
    - name: nginx
      apt:
        name: nginx
        state: present
        update_cache: true

    - name: start and enable
      service:
        name: nginx
        state: started
        enabled: true

Параметры подключения удобно задать в ansible.cfg:

[defaults]
remote_user = ubuntu
private_key_file = ~/.ssh/id_rsa
host_key_checking = False

Безопасность

  • clouds.yaml — под защитой: chmod 600, вне git; используйте application credentials, а не пароль аккаунта.
  • Секреты — в ansible-vault (ansible-vault encrypt), а не в открытом виде.
  • Отдельные SSH-ключи под автоматизацию и их периодическая ротация.

Частые вопросы

Ошибка «openstacksdk is required». Установите openstacksdk в то же окружение Python, где стоит Ansible.

Inventory пустой. Проверьте OS_CLOUD=serverplus и что серверы существуют (openstack server list).

Не подключается по SSH. Нужен floating IP, открытый 22 порт и правильные пользователь/ключ (для Ubuntu — ubuntu).

Рекомендуем
Подберём лучшее решение под ваш проект
Заполните данные и с вами свяжется менеджер для подтверждения
Номер тех. поддержки
+998 (71) 205-80-00
Email для связи
info@serverplus.uz
Часы работы
Как вам удобнее получить консультацию?
Что вас интересует? (необязательно)
Бесплатная консультация
Ответит инженер, а не оператор
Без спама и навязчивых продаж
Хотите сначала попробовать самостоятельно?Каждому новому пользователю начисляется 100 000 сум бонусов для тестирования VPS, Dedicated Server, S3-хранилища и Kubernetes.
Зарегистрироваться и получить бонус
Мы не передаем ваши данные третьим лицам
Подпишитесь на нашу рассылку

Будьте одними из первых, кто узнает новости из сферы хостингов