基于Docker和k8s的Taiga安装与配置
学习使用Taiga进行项目管理,根据官方文档,将Taiga安装在了Rancher管理的Kubernetes环境里,做一个简单的记录和分享,便于以后使用。
Taiga简介
TTaiga是一款免费开源项目管理系统,比较适用于中小型敏捷项目管理,支持Scrum和kanban两种board 模板来跟踪项目的进度,同时还提供了丰富的第三方应用集成支持,如:视频会议功能与Talky.io和Appear.in的第三方服务结合;与基于Web的版本控制存储库(如GitHub和Bitbucket)进行交互;以及实时聊天工具slack集成等。
- 简单直观:Taiga 它非常易于学习,并且可用性很高。 还有足够的文档来深入研究其每个特性。
- 高度设计: Taiga简单而宏伟,它的设计非常出色,您不会厌倦使用它。
- 可定制的: 您可以为每个项目提供所需的配置,借助其模块扩展其功能并与其他工具集成。
具体详细介绍,请参见https://taiga.io/
Taiga安装
镜像模块
Taiga官方提供了两种安装方式:基于Docker和基于源码编译,推荐使用前者,并且提供了官方的安装脚本。根据docker-compose.yml 的内容可知,主要需要安装以下9个服务:
- taiga-back,提供后端API;
- taiga-front,提供前端页面
- taiga-async,支持异步任务
- taiga-events,提供websockets网关
- taiga-gateway,提供反向代理;
- taiga-protected,提供保护;
- taiga-db,提供PostgresSQL;
- taiga-rabbitmq,提供异步任务的消息队列;
- taiga-events-rabbitmq,提供websockets的消息队列。
其中,taiga-front
和taiga-back
是核心。
由于我使用了自己的数据库服务,所以只需要安装前6个服务。
配置环境变量
基于容器的部署方式比较简单,最关键的其实是环境变量的配置。在Rancher UI里,主要使用ConfigMap
和直接设置两种方式。
default-back-environment配置
在Rancher->ConfigMaps,在taiga的namespace下添加Configmap
,命名为default-back-environment
,具体内容如下:
这里面需要注意的有以下几点:
-
由于使用的是独立的Rabbitmq,所以没有设置
RABBITMQ_USER
和RABBIMQ_PASS
,而是设置EVENTS_PUSH_BACKEND_URL
和CELERY_BROKER_URL
两个:1
2EVENTS_PUSH_BACKEND_URL: "amqp://taiga:taiga@taiga-events-rabbitmq:5672/taiga"
CELERY_BROKER_URL: "amqp://taiga:taiga@taiga-async-rabbitmq:5672/taiga" -
kubernetes以
my-svc.my-namespace.svc.cluster-domain.example
的形式解析DNS,其中my-svc
是要使用的服务名,my-namespace
是my-svc
所在的命名空间(如果在同一命名空间可以省略)。
default-back-environment
用于taiga-back
和taga-async
两个服务的配置。
nginx规则配置
将官方提供的nginx配置文件添加为ConfigMap
:
这一配置用于taiga-gateway
服务。
其余直接使用环境变量配置的,见各个服务。
安装taiga服务
taiga-back
taiga-async
taiga-async
与taiga-back
采用相同的镜像,但是不同的启动命令。
taiga-front
taiga-front
需要添加三个环境变量:
- TAIGA_URL
- TAIGA_WEBSOCKETS_URL
- TAIGA_SUBPATH
taiga-events
taiga-protected
taiga-front
taiga-front
中要把Configmap
的键值映射为容器中的配置文件。
以上就是Taiga的安装过程。
Taiga配置(TODO)
通过以上安装,Taiga已经基本可以使用。但是,实际上还需要一些配置:
创建管理员
进入docker-back
的命令行,执行python manage.py createsuperuser
,从而创建管理员账号。
添加持久卷
在这里,我们的各个服务都没有使用持久卷(除了taiga-gateway),但是官方推荐将静态资源放到持久卷上,直接通过nginx而非后台服务返回,主要是:
1 | taiga-static-data:/taiga-back/static |
用于taiga-back
、taiga-async
和taiga-gateway
。
实际上,不添加也能够正常使用。
使用HTTPS
在生产环境下建议使用HTTPS访问,具体的修改包括
- 对环境变量中
TAIGA_SITES_SCHEME
、TAIGA_URL
和TAIGA_WEBSOCKETS_URL
修改为https或者wss; - 为
taiga-gateway
修改nginx配置文件,并挂载证书和密钥。
具体可参考:
进入后台管理界面
如果希望进入后台管理界面,可以使用TAIGA_URL/admin/
(不要少了后一个斜杠),但是如果是http是无法进入的,需要为taiga-back
设置环境变量:
1 | SESSION_COOKIE_SECURE = False |
具体可参考:
- https://github.com/taigaio/taiga-front/issues/647
- https://github.com/taigaio/taiga-docker/issues/20#issuecomment-771600544
小结
刚开始学习使用Taiga,对很多功能还有一个熟悉的过程,希望能够提高一点生产效率吧😆