Страница 1 из 1

wireguard с WEB-интерфейсом через ansible

Добавлено: 26 авг 2024, 16:13
ya
wireguard с WEB-интерфейсом через ansible
https://habr.com/ru/articles/738408/

Код: Выделить всё

sudo apt install ansible sshpass
inventory.yml

Код: Выделить всё

---
all:
    hosts:
        ИмяСервера1:
            ansible_host: IP_Адрес
            ansible_user: Пользователь
            # SSH порт
            ansible_port: 22
            # Для этого устанавливали sshpass
            ansible_ssh_pass: Пароль
Установка wireguard-сервера

Код: Выделить всё

ansible-playbook -i ./inventory.yml -l ИмяСервера1 ./script/install_wireguard_server.yml -e PasswordServer=990990
./script/install_wireguard_server.yml

Код: Выделить всё

---
- name: Установка и настройка сервера WireGuard
  hosts: all
  become: true
  vars:
      # INPUT - Пароль для сервера WireGuard
      PasswordServer: "{{ PasswordServer }}"
      #
      container_name: wg_easy
      container_image: weejewel/wg-easy
  tasks:
      - name: Установка Docker
        block:
            - name: Обновление apt
              apt:
                  update_cache: yes

            - name: Установить Docker зависимости
              apt:
                  name:
                      - gnupg
                  state: present

            - name: Добавить Docker GPG ключ
              apt_key:
                  url: https://download.docker.com/linux/ubuntu/gpg
                  state: present

            - name: Добавление Docker репозитория
              apt_repository:
                  repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
                  state: present

            - name: Установка зависимостей
              apt:
                  name: "{{ item }}"
                  state: present
                  install_recommends: yes
              loop:
                  - docker-ce

      - name: Запуск Docker
        block:
            - name: Остановка прошлого Docker контейнера(если ошибка, то игнорируем)
              command: "docker container stop {{ container_name }} "
              ignore_errors: yes

            - name: Удалеям остановленные контейнеры
              command: "docker container prune -f"

            # Источник: https://hub.docker.com/r/weejewel/wg-easy
            - name: Запуск новый Docker контейнер
              command: |
                  docker run -d \
                    --name={{ container_name }} \
                    -e WG_HOST={{ ansible_host }} \
                    -e PASSWORD={{ PasswordServer }} \
                    -v /home/.{{ container_name }}:/etc/wireguard \
                    -p 51820:51820/udp \
                    -p 51821:51821/tcp \
                    --cap-add=NET_ADMIN \
                    --cap-add=SYS_MODULE \
                    --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
                    --sysctl="net.ipv4.ip_forward=1" \
                    --restart unless-stopped \
                    {{ container_image }}

      - name: Создание systemd-службы для авто заупска контейнера
        block:
            - name: Создание конфигурационного автозапуска Docker
              copy:
                  dest: "/etc/systemd/system/{{ container_name }}.service"
                  content: |
                      [Unit]
                      Description=Docker Container: {{ container_name }}
                      Requires=docker.service
                      After=docker.service

                      [Service]
                      Restart=always
                      ExecStartPre=/usr/bin/docker pull {{ container_image }}
                      ExecStart=/usr/bin/docker start -a {{ container_name }}
                      ExecStop=/usr/bin/docker stop -t 10 {{ container_name }}

                      [Install]
                      WantedBy=multi-user.target

            - name: Перезапуск systemd
              systemd:
                  name: "{{ container_name }}.service"
                  daemon_reload: yes
                  state: restarted

            - name: Включение службы в автозапуск
              systemd:
                  name: "{{ container_name }}.service"
                  enabled: yes

            - name: Запуск контейнера Docker
              command: "docker start {{ container_name }}"

Re: wireguard с WEB-интерфейсом через ansible

Добавлено: 27 авг 2024, 12:03
ya
wireguard с WEB-интерфейсом через docker.io
https://blog.unixhost.pro/ru/2022/11/wireguard-server-s-veb-interfejsom-za-60-sekund/

Re: wireguard с WEB-интерфейсом через ansible

Добавлено: 27 авг 2024, 15:38
ya

Re: wireguard с WEB-интерфейсом через ansible

Добавлено: 19 сен 2024, 17:40
ya
В Docker имеется команда, очищающая все не связанные с контейнерами ресурсы, в том числе образы, контейнеры, тома и сети:

Код: Выделить всё

docker system prune
Чтобы удалить все остановленные контейнеры и неиспользуемые образы (а не только образы, не связанные с контейнерами), добавьте в эту команду флаг -a:

Код: Выделить всё

docker system prune -a

Re: wireguard с WEB-интерфейсом через ansible

Добавлено: 20 сен 2024, 17:26
ya

Код: Выделить всё

sudo apt install docker-ce docker-ce-cli containerd.io

Код: Выделить всё

docker run -d \
  --name=wg-easy \
  -e WG_HOST=SERVER_IP \
  -e PASSWORD=ADMIN_PASSWORD \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy