Lightsail의 bitnami Redmine에 PlantUML 플러그인 도입

계기



Redmine에서 티켓 관리하고 있는 시스템의 설계서를 같은 Redmine으로 관리하고 싶어졌다.
어차피라면 탈 Excel화하고, Wiki로 설계서를 만들고 싶다.

환경



Amazon Lightsail의 Bitnami 버전 Redmine

/etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Redmine 정보
Environment:
  Redmine version                4.1.1.stable
  Ruby version                   2.5.8-p224 (2020-03-31) [x86_64-linux]
  Rails version                  5.2.4.2
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp

도입 절차



Java 설치


$ sudo apt-get install default-jdk

Java의 설치 버전과 경로가 있는지 확인
$ java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)

Graphviz 설치


$ sudo apt-get install graphviz

Graphviz의 설치 버전과 경로가 통과했는지 dot 명령으로 확인
$ dot -V
dot: error while loading shared libraries: libgvc.so.5: cannot open shared object file: No such file or directory

오, 오, 오류가 발생했습니다. 공유 라이브러리가 없습니까? ?
dot 명령의 경로를 확인합니다.
$ which dot
/opt/bitnami/common/bin/dot

응, apt-get으로 설치했는데, bitnami의 부하를 참조하고 있습니까? ?
dpkg 명령으로 graphviz를 설치할 위치를 확인합니다.
$ dpkg -L graphviz
(抜粋)
/usr/bin/dot
(抜粋)

/usr/bin/dot에 있네요.
이제 다시 dot 명령으로 확인합니다.
$ /usr/bin/dot -V
dot - graphviz version 2.40.1 (20161225.0304)

성공!
$ echo $PATH
(抜粋):/opt/bitnami/common/bin(抜粋):/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

PATH의 우선 순위가 bitnami 쪽이 높았다고 하는 것이군요.

일본어 글꼴 설치



아무것도 생각하지 않고 IPA 글꼴을 설치합니다.
$ sudo apt-get install fonts-ipafont fonts-ipaexfont

PlantUML 얻기



참고 사이트에서는, wget로 취득하고 있습니다만, 자신의 PC에 다운로드 후, SCP로 홈 디렉토리(/home/bitnami)에 업했습니다.

PlantUML의 동작 확인



아래 내용을 test.uml로 저장합니다.

test.uml
@startuml
Alice -> Bob: test
@enduml

이미지 파일로 변환합니다.
$ java -jar plantuml.jar test.uml

아래와 같은 파일이 생성되면 성공입니다.



명령화



PlantUML jar 파일을 홈 디렉토리 이외로 이동합니다.
$ sudo cp plantuml.jar /usr/local/bin

/usr/bin/plantuml에 쉘 스크립트를 만듭니다.

/usr/bin/plantuml
#!/bin/bash
export LANG=ja_JP.UTF-8;
/usr/bin/java -Djava.io.tmpdir=/var/tmp -Djava.awt.headless=true -jar /usr/local/bin/plantuml.jar  -charset UTF-8 ${@}

파일을 만든 후 파일의 사용 권한을 변경합니다.
$ sudo chmod 755 /usr/bin/plantuml

이전처럼 이미지 파일을 만들 수 있는지 확인합니다.
$ sudo chmod 755 /usr/bin/plantuml

PlantUML Redmine plugin 설치



Redmine의 Plugins 디렉토리로 이동합니다.
cd ~/apps/redmine/htdocs/plugins

git clone하고 소유자를 Redmine의 다른 디렉토리와 일치시킵니다.
$ git clone https://github.com/dkd/plantuml.git
$ sudo chown -R bitnami:daemon plantuml

플러그인을 설치합니다.
sudo가 없으면 "production.log에 쓸 수 없습니다"라는 오류가 발생하여 sudo를 추가했습니다.
$ sudo bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Redmine 첨부 파일 저장 디렉토리의 사용 권한을 변경합니다.
$ chmod 775 /home/bitnami/apps/redmine/htdocs/files

권한을 변경하지 않으면 아래와 같은 오류가 표시될 수 있습니다.



만약을 위해, 여러가지 재기동합니다.
$ sudo /opt/bitnami/ctlscript.sh stop
$ sudo /opt/bitnami/ctlscript.sh start

재부팅 후 Redmine에 관리자 사용자로 로그인합니다.
로그인 후 "설정"→ "플러그인"화면을 표시합니다.
PlantUML 경로에/usr/bin/plantuml을 입력하고 적용 버튼을 클릭합니다.



Redmine의 위키에서 동작 확인



Wiki에 다음과 같이 입력합니다. 일본어로 표시할 수 있을지도 테스트합니다.



Wiki 페이지를 저장한 후 아래와 같이 표시되면 성공합니다.



덧붙여서, 클래스 다이어그램도 동작 확인합니다.



이것으로 작업이 완료되었습니다.

참고 사이트



PlantUML

Redmine의 PlantUML 플러그인

PlantUML을 Ubuntu에 설치

PlantUML을 Redmine에서 사용

Redmine에서 PlantUML (+Graphviz)을 사용하려고 시도한 이야기

좋은 웹페이지 즐겨찾기