openwisp.wifi_login_pages
ansible-openwisp-wifi-login-pages
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 来加快后续测试的运行速度。
