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 年创建。

关于项目

Setup a ghost blog using docker container

安装
ansible-galaxy install salessandri.ghost
许可证
mit
下载
148