1、需求
docker 安装工单系统 Request Tracker,并需要支持 LDAP 登入。
2、制作镜像
1)request-tracker-base镜像
第一个镜像安装一些基础支持软件,如 apache2、rt4的插件等。
Dockerfile文件托管在 Github,下载后制作镜像,并上传到私有仓库(或者上传到docker hub)。
1docker build -t request-tracker-base:v4.2.16 2docker tag request-tracker-base:v4.2.16 reg.nexus.wmq.com/tools/request-tracker-base:v4.2.16 3docker push reg.nexus.wmq.com/tools/request-tracker-base:v4.2.16
参考:https://hub.docker.com/r/netsandbox/request-tracker-base/dockerfile,https://github.com/cloos/docker-rt-base
2)request-tracker镜像
第二个镜像是基于第一个 request-tracker-bas 镜像基础上,安装了 rt4 软件,以及支持集成 LDAP 的插件(该插件必须是已完成安装 rt4 后安装)。
Dockerfile文件托管在 Github,下载后制作镜像,并上传到私有仓库(或者上传到docker hub)。
1docker build -t request-tracker:v4.2.16 2docker tag request-tracker:v4.2.16 reg.nexus.wmq.com/tools/request-tracker:v4.2.16 3docker push reg.nexus.wmq.com/tools/request-tracker:v4.2.16
参考:https://hub.docker.com/r/netsandbox/request-tracker/dockerfile,https://github.com/cloos/docker-rt
3、部署
rt4所有的数据都存储在 /opt/rt4 目录中,需要做持久化。默认管理员账号:root,密码:password
mkdir /opt/rt4docker run -itd --name rt -v /opt/rt4:/opt/rt4 -p 80:80 reg.nexus.wmq.com/tools/request-tracker:v4.2.16
4、说明
1)当前 request-tracker 最新版本为v4.4.4,为什么不选择最新版本,因为 request-tracker 集成LDAP用到的 RT::Authen::ExternalAuth 插件要求是低于v4.4.0版本,所以选择v4.2.16版本(4.2最新的版本)。
RT::Authen::ExternalAuth 语法参考:https://metacpan.org/pod/RT::Authen::ExternalAuth
2)对于网上采用 apt-get 安装 rt4-extension-authenexternalauth 方式安装LDAP插件,经验证只能是 Debian 8(jessie)或者 Ubuntu 16.04.1 系统才有安装包,并且 request-tracker4 也必须是 apt-get 方式安装(安装的版本是v4.2.4,不是最新的版本),要不然插件识别不到 request-tracker4,会提示未安装 rt4,另外因 apt-get 方式安装 rt4 最后需要有一个交互的步骤,所以不能采用docker方式安装。
5、附:手动安装 rt4
手动安装 request-tracker4 步骤
11)安装系统版本debian:jessie 2 32)设置安装源 4cat >/etc/apt/sources.list <<EOF 5deb http://mirrors.tuna.tsinghua.edu.cn/debian/ jessie main contrib non-free 6deb http://mirrors.tuna.tsinghua.edu.cn/debian/ jessie-updates main contrib non-free 7deb http://mirrors.tuna.tsinghua.edu.cn/debian-security jessie/updates main contrib non-free 8EOF 9 10apt-get update3)安装 11apt-get install -y net-tools vim 12apt-get install -y request-tracker4 rt4-apache2 rt4-clients rt4-db-postgresql apache2-doc lynx postgresql apache2 libapache-dbi-perl fetchmail 13 14#安装最后有交互过程 15Configuring request-tracker4 16Name for this Request Tracker (RT) instance: rt.debian8-55cd77c7dc-z568r 17Handle RT_SiteConfig.pm permissions? yes 18Configure database for request-tracker4 with dbconfig-common? yes 19PostgreSQL application password for request-tracker4: Admin123 20Initial root password for RT system: Admin123 21Next step for database installation: 4 221. abort 2. retry 3. retry (skip questions) 4. ignore 23 24 254)安装LDAP插件apt-get install -y rt4-extension-authenexternalauth 26 27 285)启动数据库 29service postgresql start 30#初始化管理账号 31su - postgres 32psql 33ALTER USER postgres WITH PASSWORD 'Admin123'; 34\q 35 366)配置文件 37cd /etc/request-tracker4 38chmod 777 RT_SiteConfig.pm 39#RT_SiteConfig.pm文件添加 40# External auth specifications 41Set(@Plugins, (qw(RT::Authen::ExternalAuth))); 42Set($ExternalAuthPriority, [ 'My_LDAP' ]); 43Set($ExternalInfoPriority, [ 'My_LDAP', ]); 44Set($AutoCreateNonExternalUsers, 0); 45Set($ExternalSettings, { 46 'My_LDAP' => { 47 'type' => 'ldap', 48 'server' => 'ldaps://ldap.wmq.com:636', 49 'user' => 'cn=manager,dc=wmq,dc=com', 50 'pass' => '******', 51 'base' => 'ou=员工,dc=wmq,dc=com', 52 'filter' => '(objectClass=inetOrgPerson)', 53 'attr_match_list' => [ 54 'Name', 55 'EmailAddress', 56 ], 57 'attr_map' => { 58 'Name' => 'uid', 59 'EmailAddress' => 'mail', 60 'RealName' => 'sn', 'WorkPhone' => 'telephoneNumber' 61 }, 62 }, 63}); 64Set($WebBaseURL, 'http://rt4.wmq.com');7)配置apache2 65 66vi /etc/apache2/sites-enabled/000-default.conf 67在</VirtualHost>前添加下面两行: 68Include /etc/request-tracker4/apache2-modperl2.conf RedirectMatch ^/$ /rt #启动apache2 /etc/init.d/apache2 restart