Рубрики
ansible

openwisp / openwisp2 / debian 11 / ansible

Ссылки:

# ansible
https://galaxy.ansible.com/openwisp/openwisp2

# install openwisp
https://github.com/openwisp/ansible-openwisp2#usage-tutorial

#python
python latest install (3.9.7) alternatives env
#bug https://githubhot.com/repo/openwisp/ansible-openwisp2/issues/358 https://stackoverflow.com/questions/61365790/error-could-not-build-wheels-for-scipy-which-use-pep-517-and-cannot-be-installe https://github.com/pallets/markupsafe/issues/284

Готовим машину с ansible:

0. Свеженький debian 11

1. Ставим пакеты
apt-get install git pip sshpass
pip install ansible
pip install Jinja2>=2.11

2. Добавляем пользователя от которого будем все ставить 
!!! На сервере куда будем устанавливать также его добавляем 
adduser user

2.1 Переключаемся на пользователя user
su - user 

3. Генерируем ключи и отправляем его на сервер куда будем ставить openwisp
ssh-keygen
ssh-copy-id YOU_IP_ADDRESS

4. Устанавливаем galaxy openwisp.openwisp2 под пользователем  user
ansible-galaxy install openwisp.openwisp2 
ansible-galaxy collection install "community.general:>=3.6.0"

5. Создаем каталог и переходим в него 
mkdir ~/openwisp2-ansible-playbook
cd ~/openwisp2-ansible-playbook

6. Создаем конфиг для ansible 
vim ansible.cfg 
---------------
[defaults]
host_key_checking = False 
pipelining = True
deprecation_warnings = False
retry_files_enabled = False 
inventory      = ./hosts.txt 
#roles_path = ./roles 
forks          = 10 
timeout = 10 
log_path = ./ansible.log 
interpreter_python = python3
[diff]
always = True 
context = 3
---------------

7. Создаем файл с хостами на которые будем накатывать openwisp
vim hosts
--------- 
[openwisp2]
YOU_IP_OR_DNS
---------

8. Готовим playbook opewisp
vim playbook.yml 
----------------
- hosts: openwisp2
  roles:
    - openwisp.openwisp2
  # the following line is needed only when an IP address is used as the inventory hostname
  vars:
      postfix_myhostname: localhost
      openwisp2_network_topology: true 
      openwisp2_monitoring: true
      openwisp2_firmware_upgrader: true
      openwisp2_radius: true 
----------------       

Готовим сервер куда будем устанавливать openwisp:

0. Ставим пакеты
apt install sshpass python pip python3-pip git sudo 

1. Редактируем sudo для пользователя user
visudo 
-------------------------------
user    ALL=(ALL) NOPASSWD: ALL
-------------------------------

2. Пример /etc/apt/source.list в debian 11:
!!! Внимание по рекомендации openwisp должна быть свежая система
!!! # Включение бэк портов на сервере (куда ставим) приводит к ошибки установки redis 
-----------------------------------------------------------------
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
 
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
 
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free


#deb http://deb.debian.org/debian bullseye-backports main contrib non-free
#deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free
------------------------------------------------------------------

Приступаем к установке( На сервере с ansible):

!!! При установке на debian 11 могут быть несколько проблем ()

0. Проверяем и правим файл в зависимости от версии pip
!!! не правильная версия pip будет приводить  к даунгрейду и ошибкам дальнейшей установки openwisp
vim ~/.ansible/roles/openwisp.openwisp2/tasks/pip.yml
-----------------------------------------------------
      - pip==22.0.4
      #      - pip==20.2.4
-----------------------------------------------------

1. Переходим в каталог
cd /home/user/openwisp2-ansible-playbook

2. Запускаем установку
ansible-playbook -i hosts playbook.yml -b 

3. Наблюдаем за выхлопом ansible и в случаи не удачи, решаем проблемы. 

Баги:

На сервере пробуем обновить:
/opt/openwisp2/env/bin/pip install --upgrade pip setuptools wheel
/opt/openwisp2/env/bin/pip install -U bpython