Особенности

Эта роль Ansible будет устанавливать, настраивать и управлять автономным прокси-сервером Snowflake.

  • Поддержка Ubuntu, Debian, Debian, Arch Linux, Fedora и FreeBSD.
  • Модуль Systemd для управления сервисом Snowflake в GNU/Linux и rc-скриптом для FreeBSD.

Требования

  • Python
  • Ansible версии 2.9 или выше

1. Установка Ansible

Вы можете установить Ansible с помощью pip:

$ python -m pip install --user ansible

или найти другие способы установки Ansible.

2. Загрузка роли Ansible

Необходимая роль Ansible называется nvjacobo.snowflake. Вы можете найти её в репозитории Galaxy и установить с помощью команды:

$ ansible-galaxy install nvjacobo.snowflake

3. Создание плейбука (playbook)

Создайте плейбук (playbook) Ansible для запуска новой роли:

- hosts: snowflake
  roles:
      - nvjacobo.snowflake

4. Создание инвентаря (inventory)

Инвентарь (inventory) – это список серверов, которыми Ansible будет автоматически управлять через плейбук (playbook).

[snowflake]
ip-address

5. Развертывание и запуск сервера

При запуске плейбука (playbook) Ansible развернет автономный прокси-сервер Snowflake. Вы можете запустить его под root:

$ ansible-playbook -i inventory site.yml -u root

или с помощью sudo:

$ ansible-playbook -i inventory site.yml -u username -b

6. Управление прокси-сервером Snowflake

Если прокси-сервер Snowflake работает под управлением systemd, вы можете управлять им с помощью команд systemd: start, status и stop. Например:

$ ansible all -i inventory -a 'systemctl status snowflake-proxy'

Под FreeBSD вы можете управлять своим прокси-сервером Snowflake с помощью команд rc-скрипта. Например:

$ ansible all -i inventory -a 'service snowflake status'

7. Обновление вашего прокси-сервера Snowflake

Важно поддерживать автономный прокси-сервер Snowflake в актуальном состоянии. При запуске плейбука (playbook) Ansible будут установлены обновления:

$ ansible-playbook -i inventory site.yml -u root

8. (Опционально) Ограничение использования

Вы можете ограничить количество клиентов (пользователей Snowflake) с помощью переменной client. Максимальное количество одновременных клиентов по умолчанию не ограничено (0 = без ограничений).

Приведенный ниже плейбук имеет ограничение в 300 одновременных клиентов:

- hosts: snowflake
   vars:
    clients: 300
  roles:
     - nvjacobo.snowflake

Примечание: Эта переменная роли Ansible недоступна для FreeBSD.