2019年7月23日火曜日

Redmineインストール

いまさらだけど、やっぱりタスク管理をやってみたくて
超メジャーにすることにした。
https://propagandes.info/redmine-install/
動作環境
http://guide.redmine.jp/RedmineInstall/#Requirements
あれ、MariaDBだめなの??
じゃあ、新たにPostgreSQLを入れるか、Dcoker使って環境作るか・・・。
まずはお試しなので、Docker使ってみようかな。
https://qiita.com/bezeklik/items/b9d75ee74e0ae4c6d42c
悩む・・。
https://www.untrustedconnection.com/2018/01/redmine-passenger-and-nginx-on-ubuntu.html
悩んだ時は巨人の肩に乗る!
https://github.com/sameersbn/docker-redmine

MariaDBのデータディレクトリ移動

よくよく見たら、データがraid環境下に保管されていなかった。あちゃー
cat /etc/mysql/mariadb.conf.d/50-server.cnf
-------------------------------------------
(略)
#
# * Basic Settings
#
user  = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port  = 3306
basedir  = /usr
datadir  = /var/lib/mysql
tmpdir  = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
(略)
のdatadirを"/mnt/4Traid1/dbdata"に変更したい
systemctl stop mariadb.service
50-server.cnfのdatadb書き換え
データ移動
systemctl start mariadb.service
これで少し安心。

いざRedmine

http://www.makcraft.com/blog/meditation/2019/01/19/running-redmine-on-docker-containers/

Dockerの準備

https://docs.docker.com/install/linux/docker-ce/ubuntu/
基本的にはこの手順。だけど、Ubuntuじゃないので、注意。
$ lsb_release -cs
tara
「tara」は「Ubuntu 18.04 LTS」をベースにしているらしい。
で、これのコードネームは「bionic」らしい。
https://ja.wikipedia.org/wiki/Linux_Mint
https://www.ubuntulinux.jp/News/ubuntu1804
なので、「$(lsb_release -cs)」の部分を書き換える。

まずはクイックスタートを試してみる

https://github.com/sameersbn/docker-redmine#installation
docker pull sameersbn/redmine:latest
docker run --name=postgresql-redmine -d --env='DB_NAME=redmine_production'   --env='DB_USER=redmine' --env='DB_PASS=password' --volume=/srv/docker/redmine/postgresql:/var/lib/postgresql sameersbn/postgresql:9.6-4
docker run --name=redmine -d --link=postgresql-redmine:postgresql --publish=5080:80 --publish=50443:443 --env='REDMINE_PORT=5080' --volume=/srv/docker/redmine/redmine:/home/redmine/data sameersbn/redmine:4.0.4
https://サーバー:5080にアクセスすると


おぉ!

外部SQLサーバーを使ってみる

せっかく母艦のほうにMariaDBがあるのでPostgreからこっちに切り替えてみる
Redmineのコンテナからアクセスできるようにする。振られたIPはなんだろうか?
https://qiita.com/miyatahirotaka/items/a44e2ae0bac53a4a5feb
https://qiita.com/suin/items/50033dc60bfba8553395
http://docs.docker.jp/engine/userguide/networking/dockernetworks.html
docker exec -i -t redmine bash
root@57a:/home/redmine/redmine# hostname -i
172.17.0.3

MariaDBの設定変更

外部からアクセス出来るようにする。
https://qiita.com/tocomi/items/0c009d7299584df49378
vi /etc/mysql/mariadb.conf.d/50-server.cnf
-----------
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address            = 127.0.0.1
-----------
service mariadb restart

MariaDBにDBとユーザー作成

CREATE USER 'redmine'@'172.17.%' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `redmine_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'172.17.%'
試しに、コンテナの中からアクセス出来るか確認してみる
docker exec -i -t redmine bash
root@57a:/home/redmine/redmine# mysql -u redmine -p --host==サーバーIP

起動中のRedmineとPostgreを停止する

プロセスの確認と停止
docker ps -a
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                     PORTS               NAMES
57aee49d39b6        sameersbn/redmine:4.0.4      "/sbin/entrypoint.sh…"   5 days ago          Exited (0) 5 seconds ago                       redmine
78b9389d7745        sameersbn/postgresql:9.6-4   "/sbin/entrypoint.sh"    5 days ago          Up 5 days                  5432/tcp            postgresql-redmine

docker stop redmine
docker stop postgresql-redmine
コンテナの削除
docker rm redmine
docker rm postgresql-redmine
http://www.risewill.co.jp/blog/archives/6793

外部SQLサーバーを指定して起動してみる

docker run --name=redmine -it --rm \
--env='DB_ADAPTER=mysql2' \
--env='DB_HOST=192.168.1.25' --env='DB_NAME=redmine_production' \
--env='DB_USER=redmine' --env='DB_PASS=password' \
--env='REDMINE_HTTPS=false' \
--publish=5080:80 --publish=50443:443 --env='REDMINE_PORT=5080' \
--volume=/srv/docker/redmine/redmine:/home/redmine/data \
sameersbn/redmine::4.0.4
さぁ



わぉOrz
ログを確認してみる。
docker exec -i -t redmine bash
tail -f /var/log/redmine/redmine/production.log
----
Started GET "/" for 127.0.0.1 at 2019-07-09 22:40:27 +0000
Processing by WelcomeController#index as HTML
Completed 500 Internal Server Error in 8ms (ActiveRecord: 3.8ms)
  
ActiveRecord::StatementInvalid (Mysql2::Error: Table 'redmine.settings' doesn't exist: SHOW FULL FIELDS FROM `settings`):
  
app/models/setting.rb:235:in `check_cache'
app/controllers/application_controller.rb:90:in `user_setup'
----
DBを見てみると、空っぽだった。なぜ?
http://guide.redmine.jp/RedmineInstall/#step-6-
https://qiita.com/bezeklik/items/b9d75ee74e0ae4c6d42c
初期設定が必要なのか??
docker exec redmine bundle exec rake db:migrate RAILS_ENV=production
docker exec redmine bundle exec rake redmine:load_default_data RAILS_ENV=production REDMINE_LANG=ja
これで再度アクセスしてみると



やったー
admin/adminで入ろう
よしよし、良さそう!

スマホアプリを使ってみる

宅内では使えそうなので、外出先での使用を考えてスマホアプリを導入してみる。
http://redminepm.com/ja
あまり、外部からアクセスできるポートを何個も開けるのは気分的に嫌だったので、
さらに当面は自分しか使わないので、sshポートフォアードを使用した。
使う時だけlocalhost:5080とサーバーの5080をつなげる。



タスクを眺めるにはアプリが見やすいと思う



チケットを割り当てたり、ガントチャート見たりはブラウザと使い分けると幸せになれそう。
しばらくはこれでやってみようと思う。

2019年7月9日火曜日

Restyaboard導入→やめた

タスク管理とかスケジュール管理とかしてみたくなった。
当分は個人使用だけど、もし良かったら社内展開するかも・・・。
という理由から、クラウド型ではなくオンプレミスで
かつ意識高い低いにかかわらず簡単に使えるものを探したいと思った。

Restyaboardとはどんなもの

まずは触ってみるべし
https://restya.com/board/demo
説明はmoongiftさんから
https://www.moongift.jp/2018/01/restyaboard-trello風のカンバンシステム/

インストール

GET STARTED を選択すると以下のページ飛んで、ユーザー登録のようなことをする
https://restya.com/board/install
インストール方法は直に?行うパターンとDockerを利用するものがあるみたい
必要な環境として
Required software: nginx, php-fpm (with mbstring, ImageMagick and IMAP), PostgreSQL, GeoIP and jq
あれ、PostgreSQLがいるのか
お試しで入れるのにはちょっとめんどくさい気がしてきたので、もっとめんどくさいかもしれなけど、Dockerを使うパターンで試してみようと思う。
https://hub.docker.com/r/restyaplatform/restyaboard/

Dockerのインストール

入れたい環境はMintだけど、Ubuntuの情報でもいいよね!ってあとで躓くけどね。
https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d
https://docs.docker.com/install/linux/docker-ce/ubuntu/
最初qiitaの方だけで進めていたら、リポジトリが見つからなかった。
docker公式見たら、Mintの場合は注意せよと書いてあったOrz
$ lsb_release -cs
sylvia
「sylvia」は「Ubuntu 16.04 LTS」をベースにしているらしい。
で、これのコードネームは「xenial」らしい。
https://ja.wikipedia.org/wiki/Linux_Mint
https://www.ubuntulinux.jp/News/ubuntu1604
なので、「$(lsb_release -cs)」の部分を書き換える。
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   xenial \
   stable"
あとは手順通り進めていき、hello-worldを実行してみる
sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

あとは、docker-composeのインストールを行う

Restyaboardのインストール

Readmeとか他のインストール事例を参考にした
sudo git clone 指定されたURL
cd board/
sudo docker-compose up --build
docker-scripts/docker-entrypoint.shを修正する?
参考
https://hub.docker.com/r/restyaplatform/restyaboard/
https://github.com/RestyaPlatform/board/wiki/Docker:-Build-and-Install
https://github.com/RestyaPlatform/board
https://qiita.com/jakelizzI/items/07888636e28ce3a186f4

起動

localhost:1234にアクセスすると
初期はadmin - restya
言語の変更は、以下の通り。


適当にカンバンボードを作成したら、、、

ド派手な背景と、大音量の音楽が・・・Orz
ちょっと使っていく自信がなくなった。
ぼにーえむって誰??

初期設定

ポートとか
sudo docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                  NAMES
c1f801aac2e2        board_restyaboard                "/docker-entrypoint.…"   2 days ago          Up 46 hours         0.0.0.0:1234->80/tcp   board_restyaboard_1
63aea7bb5e9c        postgres:9-alpine                "docker-entrypoint.s…"   2 days ago          Up 46 hours         5432/tcp               board_postgres_1
fb74fd78bc39        restyaplatform/restyaboard:dev   "/docker-entrypoint.…"   2 days ago          Up 2 days           0.0.0.0:8081->80/tcp   restyaboard
1234は以下で変えれそう
cat docker-compose.yml
version: '2'
services:
  restyaboard:
    build: .
    ports:
      - 1234:80
    environment:
      - POSTGRES_HOST=postgres
      - POSTGRES_PORT=5432
      - POSTGRES_USER=admin
      - POSTGRES_PASSWORD=admin
      - POSTGRES_DB=restyaboard
      - SMTP_DOMAIN=domain
      - SMTP_USERNAME=user
      - SMTP_PASSWORD=pass
      - SMTP_SERVER=server
      - SMTP_PORT=465
      - TZ=Etc/UTC
    depends_on:
      - postgres
    restart: always

  postgres:
    image: postgres:9-alpine
    environment:
      - POSTGRES_HOST=postgres
      - POSTGRES_USER=admin
      - POSTGRES_PASSWORD=admin
      - POSTGRES_DB=restyaboard
    restart: always

壁紙と音楽とか

https://restya.com/board/apps/r_codenames
のようにコードネームとしてBoneyMを使っているみたい。
コミュ障の僕にはこの壁紙・音楽は派手すぎるので、申し訳ないが使用しないようにしたい。
BoneyMの壁紙・音楽の消し方は以下にコメントしてあった。
https://groups.google.com/forum/#!topic/restya/x4S2xabpUtI
So, with our Codename App, all new boards will get Boney M wallpaper and productivity beat automatically. If you want to disable this behavior, please disabled Codename App.
ということで、CodenameAppを無効化してみる


非表示になったー!!

ガントチャートが欲しい

デフォルトでは入っていないみたい
https://restya.com/board/apps/r_gantt_view

インストール方法

docker環境でどうやって入れていいか・・・
とりあえず、コンテナの中に入ってみる
sudo docker exec -i -t restyaboard bash
root@fb74fd78bc39:/usr/share/nginx/html# ls
api_explorer  client  diagnose.php  ejabberd.yml  index.html  media  restyaboard-ssl.conf  restyaboard.conf  server  sql
入れたのか・・?
https://qiita.com/__cooper/items/4740c24666299c366044
あとは、手順どおりにやってみる
cd /tmp
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
unzip ioncube_loaders_lin_x86-64.zip
php -v
PHP 7.2.19-1+0~20190531112637.22+stretch~1.gbp75765b (cli) (built: May 31 2019 11:26:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.19-1+0~20190531112637.22+stretch~1.gbp75765b, Copyright (c) 1999-2018, by Zend Technologies
php -i | grep extension_dir
extension_dir => /usr/lib/php/20170718 => /usr/lib/php/20170718
cp ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20170718/
vi /etc/php/7.2/fpm/php.ini
zend_extension = /usr/lib/php/20170718/ioncube_loader_lin_7.2.so
あと、viが入っていなかったので、インストールした。
https://qiita.com/YumaInaura/items/3432cc3f8a8553e05a6e

肝心のgantt_viewが入手できない

アプリの説明を見ても入手方法がよくわからないが、多分有料なのだろう。
でも価格がわからない。(BUY)押してもコンタクトフォームに飛んでしまう。
https://restya.com/board/apps/r_gantt_view
デモサイトではいい感じだったのだけど、ちょっと心が離れた。
docker触れたし、いい勉強になったはず。