openwisp.wifi_login_pages

ansible-openwisp-wifi-login-pages

Ansible OpenWISP WiFi Login Pages CI Build

Ansible 角色用于部署和管理 openwisp-wifi-login-pages

所需的变量:

  • wifi_login_pages_domains:一个包含应用可访问的主机名的列表。
  • wifi_login_pages_organizations_src:包含组织配置的目录的本地路径。

使用方法(教程)

如果您不知道如何使用 ansible,请不要慌张,此过程将指导您完成基本的 openwisp-wifi-login-pages 安装。

如果您已经知道如何使用 ansible,可以跳过本教程。

首先,您需要理解两个关键概念:

  • 对于 "生产服务器",我们指的是一个用于托管 openwisp2 的服务器(不是笔记本电脑或台式电脑!),具有公共的 ipv4 / ipv6 地址。
  • 对于 **"本地机器"**,我们指的是您启动 ansible 的主机,例如:您自己的笔记本电脑。

Ansible 是一款通过 SSH 进入生产服务器的配置管理工具,因此您需要在启动部署的机器上安装并配置它,并且该机器必须能够通过 SSH 连接到生产服务器。

Ansible 将在您的本地机器上运行,然后连接到生产服务器以安装 openwisp-wifi-login-pages。

安装 ansible

如果您尚未在 本地机器(不是生产服务器!)上安装 ansible(版本 2.13 或更高),请进行安装。

安装 ansible,我们建议您按照官方的 ansible 安装指南进行操作。建议通过虚拟环境安装 ansible,以避免依赖问题。

请确保在 Python 环境中安装正确版本的 Jinja:

pip install Jinja>=2.11

选择工作目录

选择一个 在您的本地机器上的工作目录来存放 openwisp-wifi-login-pages 的配置。

这在您需要升级 openwisp-wifi-login-pages 时将非常有用。

例如:

mkdir ~/openwisp-wifi-login-pages-ansible-playbook
cd ~/openwisp-wifi-login-pages-ansible-playbook

将此工作目录纳入版本控制也是一个非常好的主意。

从 ansible-galaxy 安装 ansible 角色

ansible-galaxy install openwisp.wifi_login_pages

创建库存文件

库存文件用于定义服务器组。在我们的简单案例中,我们可以仅定义一个组,并在其中放入一个服务器。

在您本地机器的工作目录(上一步中创建的目录)中创建一个名为 hosts 的新文件,内容如下:

[openwisp-wifi-login-pages]
openwisp-wifi-login-pages.mydomain.com

创建剧本文件

在您本地机器上创建一个新的剧本文件 playbook.yml,内容如下:

- hosts: openwisp-wifi-login-pages
  become: "{{ become | default('yes') }}"
  roles:
    - openwisp.wifi_login_pages
  vars:
    wifi_login_pages_domains: ["wifi.openwisp.org"]

become: "{{ become | default('yes') }}" 这一行表示 ansible 将使用 sudo 程序来运行每个命令。如果您不需要它(例如:如果您是生产服务器上的 root 用户),可以删除此行。

您可以根据需要将 hosts 字段中的 openwisp-wifi-login-pages 替换为生产服务器的主机名。

wifi_login_pages_domains 是唯一必需的变量。它是一个包含应用可访问主机名的列表。

运行剧本

现在是 将 openwisp-wifi-login-pages 部署到生产服务器 的时候了。

从您的本地机器运行剧本:

ansible-playbook -i hosts playbook.yml -u <user> -k --become -K

<user> 替换为您 生产服务器的用户名。

-k 参数需要 sshpass 程序。

如果您的公钥已安装在服务器上,可以删除 -k--become-K

提示

  • 如果出现 身份验证或权限失败 的错误,请尝试使用 root 用户运行:ansible-playbook -i hosts playbook.yml -u root -k
  • 如果出现添加主机指纹到 known_hosts 文件的错误,您可以通过 SSH 连接到主机并在提示时回答“是”;然后您可以再次运行 ansible-playbook

部署组织配置和资产

要部署组织的 YAML 配置文件及其相关静态资产(徽标、CSS 等),请按照以下步骤进行:

步骤 1:切换到 ansible 剧本文件目录。

cd <path_to_playbook_file>

步骤 2:创建目录 files

mkdir files

步骤 3:将 organizations 目录中的所有组织配置和资产复制到 files/owlp_organizations

cp -r <path_to_organizations_directory> files/owlp_organizations

部署翻译

要部署普通和自定义翻译,请将 i18n 目录中的所有翻译复制到 files/owlp_i18n

cp -r <path_to_i18n_directory> files/owlp_i18n

现在运行剧本,文件将被上传到远程。

部署自定义静态内容

要部署自定义静态内容(HTML 文件、PDF 等),请将所有静态内容添加到 files/owlp_static 目录。剧本运行时,owlp_static 中的文件将上传到远程 static 目录。

如何运行测试

如果您想为 ansible-openwisp-wifi-login-pages 做出贡献,您应该在开发环境中运行测试,以确保您的更改不会破坏任何内容。

为此,请按照以下步骤操作:

步骤 1:克隆 ansible-openwisp-wifi-login-pages

通过以下命令克隆库:

git clone https://github.com/<your_fork>/ansible-openwisp-wifi-login-pages.git

步骤 2:安装 docker

如果您尚未安装 docker,则需要安装它(适用于 Linux Debian/Ubuntu 系统示例):

sudo apt-get install docker.io

步骤 3:安装 molecule 和依赖

pip install molecule[docker] yamllint ansible-lint docker

步骤 4:下载 docker 镜像

docker pull geerlingguy/docker-ubuntu2404-ansible:latest
docker pull geerlingguy/docker-ubuntu2204-ansible:latest
docker pull geerlingguy/docker-ubuntu2004-ansible:latest
docker pull geerlingguy/docker-debian11-ansible:latest
docker pull geerlingguy/docker-debian12-ansible:latest

步骤 5:安装 ansible 依赖

ansible-galaxy collection install community.docker

步骤 6:运行 molecule 测试

molecule test -s local

如果没有错误信息,则意味着测试成功运行,无错误。

专业提示: 使用 molecule test --destroy=never 来加快后续测试的运行速度。

关于项目

Role to install and upgrade OpenWISP WiFi Login Pages

安装
ansible-galaxy install openwisp.wifi_login_pages
许可证
Unknown
下载
688
拥有者
Modular and Programmable Open Source Network Management System for Linux OpenWrt.