salessandri.ghost
ghost
这个角色使用 Docker 社区的 ghost 镜像来建立一个 ghost 博客。
要求
该角色依赖于主机上可用的 docker
和 ansible 中的 docker_container
ansible 模块。
为满足第一个要求,可以使用 geerlingguy.docker
角色。
为了满足 docker_container
模块的依赖,可以使用 geerlingguy.pip
角色 来安装 Python 的 docker
包。
角色变量
ghost__host
(必需, 默认: localhost): 该变量的值有两个主要用途:定义博客的 URL,并用于定义容器的名称。URL 将定义为https://{{ ghost__host }}
,容器名称通过将变量中的点转换为下划线并在前面添加ghost_
生成。ghost__version
(可选, 默认: 5.85.1): 在容器中使用的 ghost 的 docker 镜像标签。请参见 dockerhub 中的 ghost 镜像标签。ghost__base_dir
(可选, 默认: /var/ghost-blog): 设置博客持久文件的文件夹。ghost__blog_name
(可选, 默认: Ghost Blog): 在 Ansible 中引用特定角色实例的名称。对服务没有任何语义影响。ghost__listen_host
(可选, 默认: 127.0.0.1): 容器将发布博客套接字的地址。ghost__listen_port
(可选, 默认: 2368): 容器将发布博客端口的端口。ghost__configs
(可选, 默认: {}): 作为环境变量传递给容器的配置字典。有关所有可能值以及如何将键转换为环境变量,请参见 ghost 的配置文档 和特别是 这里。
建议
建议不要直接将 ghost 的端口暴露给外部,而是使用像 nginx 这样的反向代理来转发适当的流量。
这样可以更容易地进行 TLS 设置,并在多个应用程序之间共享 HTTPS 端口。
示例剧本
以下是一个相当常见的角色用法示例:
- host: my-blog.my-domain.com
roles:
- role: salessandri.ghost
vars:
ghost__host: my-blog.my-domain.com
ghost__base_dir: /var/my-blog
ghost__blog_name: Personal Blog
ghost__configs:
mail__from: '"My Blog Email" <[email protected]>'
mail__transport: 'SMTP'
mail__options__host: smtp.my-domain.com
mail__options__port: 465
mail__options__secureConnection: true
mail__options__auth__user: blog_mail_user
mail__options__auth__pass: '{{ blog_mail_password_vault }}'
许可
MIT
作者信息
该角色由 Santiago Alessandri 于 2020 年创建。
安装
ansible-galaxy install salessandri.ghost
许可证
mit
下载
148