ansible/roles/install-stcp
kashapovd 9e85d0a8b9 fixed stcp binary file name for arm 2021-12-01 11:36:16 +07:00
..
defaults added watchdog option 2021-11-29 10:41:59 +00:00
files added ARM arch support 2021-11-29 10:40:40 +00:00
tasks fixed stcp binary file name for arm 2021-12-01 11:36:16 +07:00
templates updated stcp service script 2021-11-29 10:42:30 +00:00
vars added initial l2 mode support 2021-11-01 10:55:27 +00:00
README.md added initial l2 mode support 2021-11-01 10:55:27 +00:00

README.md

Роль install-stcp

Данная роль предназначена для автоматической установки STCP-сервера.

Параметры

Все параметры имеют значения по-умолчанию (указаны в скобках). Поддерживаемые значения перечислены в {таких скобках}

Параметр Описание
server_port Начальный порт, на котором работает STCP-server (5006)
links_number Количество линков агрегации (8)
link_start_ip_addr Начальный адрес линков (192.168.56.2)
link_ip_mask Маска линков (255.255.255.252)
ext_iface Внешний интерфейс (eth0)
stcp_level Сетевой уровень, на котором работает сервер {(l3), l2}
l2_bridge_name Имя сетевого моста для уровня L2 (br_l2)
l2_bridge_ipaddr IP-адрес сетевого моста (10.100.0.1)
l2_bridge_ipmask IP-маска сетевого моста (255.255.255.0)
l2_iface Интерфейс, который включается в сетевой мост помимо stcp-tap (eth1)
stcp_mode Режим работы STCP-сервера {tun, tap, (tuntap)}
stcp_runas Имя пользователя, от которого запускается сервер
run_stcp Стартовать ли сервер после деплоя {(yes), no}
use_auth Использование аутентификации {yes, (no)}
use_client_logging Использование логирования подключений {(yes), no}
tap_iface_ip_addr IP-адрес TAP-интерфейса (10.10.1.1)
tap_iface_ip_mask IP-маска TAP-интерфейса (255.255.255.0)
tun_iface_ip_addr IP-адрес TUN-интерфейса (10.11.1.1)
tun_iface_ip_mask IP-маска TUN-интерфейса (255.255.255.0)

В директории defaults/ содержится ряд дополнительных параметров. В основном это пути расположения исполняемого файла STCP-сервера, скриптов запуска и т.п., а также настройки сервера по умолчанию, их можно переопределить:

# defaults file for install-stcp
stcp_base_dir: /opt/stcp
stcp_binary_path: '{{stcp_base_dir}}/multi_srv_raw'
stcp_instance_name: '{{ server_port }}_{{ server_port + links_number-1 }}'
stcp_instance_dir: '{{ stcp_base_dir }}/{{ stcp_instance_name }}'
loop_script_path: '{{stcp_base_dir}}/loop'
init_scripts_dir: /etc/init.d
clients_log_file_path: '{{ stcp_instance_dir }}/logc'
users_file_path: '{{ stcp_instance_dir }}/users.ini'

# default stcp conf settings
stcp_mtu_size: 1500
en_peer_to_peer: 1
en_print_info: 1
stcp_http_srv_addr: 127.0.0.1
stcp_http_srv_port: 1888
max_sessions_threshold: 8
min_sessions_threshold: 4
flush_sort_delay_max: 600000
flush_sort_delay_min: 200000
flush_sort_add_time: 100000
split_tcp_sessions: 2

Применение

Пример ansible playbook, использующего эту роль приведён ниже. В данном случае создаётся два инстанса STCP-сервера в режиме TUNTAP c указаными параметрами.

- name: Install fully worked (I hope) STCP server
  hosts: 127.0.0.1
  connection: local
  become: yes

  roles:
    - role: install-stcp
      server_port: 5006
      link_start_ip_addr: 192.168.56.34
      ext_iface: eth0
      use_auth: no
      use_client_logging: yes

      stcp_mode: tuntap
      tun_iface_ip_addr: 10.11.1.1
      tun_iface_ip_mask: 255.255.255.0
      tap_iface_ip_addr: 10.10.1.1
      tap_iface_ip_mask: 255.255.255.0

Зависимости

    python | netaddr