このラボノートについて
本ラボノートは、当社のエンジニアが興味を持った技術情報やOTRSなどのオープンソースのトピックをブログとして多少なりのオープンソースユーザーの皆様へフィードバックすることを目的としたものです。誤った情報を掲載しないような注意、確認をしておりますが、そのような誤った情報が掲載されることもあるかもしれません。企業として技術情報の正当性を保証したり、責任を負うものではない事をご理解下さい。また、本ブログに掲載されている記事や画像に対する著作権は、当社及び著者に帰属し、著作権法により認められている場合を除き、記事や画像を無断で使用することを禁止していますので、ご注意下さい。
過去の記事をご覧になりたい場合は、右側メニューにあるカテゴリまたはアーカイブよりご覧ください。
2023/08/23 桜井耕造
OTRSというオープンソースの後継ソフトウェアをご存じない方も多いと思いますが、ZnunyとOTOBOという派生オープンソースがあります。Znunyに関しては、UIも機能もほぼOTRSと一緒ですが、OTOBOについては、データ量が膨大になっても高速で検索できるような機能が追加されています。ここでは、OTOBOをUbuntuで利用するためのインストール手順を紹介します。
ここでは、OTOBOのインストールの方法を紹介します。
インストール環境は、以下となります。
Ubuntu 22.04 LTS
mariadb-server-11.0.3
otobo-10.1.7
apache 2.4.52
(1)MariaDB 11.0.3のインストール
//MariaDB 11.0.3のリポジトリをダウンロードします。 # curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash //リポジトリを確認して、MariaDB 11.0がインストールされることが分かります。 # cat /etc/apt/sources.list.d/mariadb.list deb [arch=amd64,arm64] https://dlm.mariadb.com/repo/mariadb-server/11.0/repo/ubuntu jammy main //MariaDBインストールパッケージ確認 # apt list --installed | grep mariadb libmariadb3/unknown,now 1:11.0.3+maria~ubu2204 amd64 [installed,automatic] mariadb-client-compat/unknown,unknown,now 1:11.0.3+maria~ubu2204 all [installed,automatic] mariadb-client-core/unknown,now 1:11.0.3+maria~ubu2204 amd64 [installed,automatic] mariadb-client/unknown,now 1:11.0.3+maria~ubu2204 amd64 [installed,automatic] mariadb-common/unknown,unknown,now 1:11.0.3+maria~ubu2204 all [installed,automatic] mariadb-server-compat/unknown,unknown,now 1:11.0.3+maria~ubu2204 all [installed,automatic] mariadb-server-core/unknown,now 1:11.0.3+maria~ubu2204 amd64 [installed,automatic] mariadb-server/unknown,now 1:11.0.3+maria~ubu2204 amd64 [installed] # systemctl restart mariadb # mysql_secure_installation Switch to unix_socket authentication [Y/n] Y Change the root password? [Y/n] Y # rootのパスワードの設定 New password: Re-enter new password: Remove anonymous users? [Y/n] Y # 匿名ユーザを削除 Disallow root login remotely? [Y/n] Y # root ユーザでのリモートからのログインを禁止 Remove test database and access to it? [Y/n] Y # test データベースを削除 Reload privilege tables now? [Y/n] Y # 権限テーブルをリロード Thanks for using MariaDB!
(2)OTOBO 10.1.7のインストール
# apt install -y patch # apt-get install -y gcc # apt-get install -y apache2 # apt-get install -y libarchive-zip-perl # apt-get install -y libclass-method-modifiers-perl # apt-get install -y libdatetime-perl # apt-get install -y libconvert-binhex-perl # apt-get install -y libmoo-perl # apt-get install -y libnet-dns-perl # apt-get install -y libnet-smtp-ssl-perl # apt-get install -y libtemplate-perl # apt-get install -y libxml-libxml-perl # apt-get install -y libyaml-libyaml-perl # apt-get install -y libapache2-mod-perl2 # apt-get install -y libencode-hanextra-perl # apt-get install -y libnet-ldap-perl # apt-get install -y libcrypt-eksblowfish-perl # apt-get install -y libxml-libxslt-perl # apt-get install -y libmail-imapclient-perl # apt-get install -y libauthen-ntlm-perl # apt-get install -y libjson-xs-perl # apt-get install -y libtext-csv-xs-perl # apt-get install -y libcgi-psgi-perl # apt-get install -y libdbix-connector-perl # apt-get install -y libfile-chmod-perl # apt-get install -y liblist-allutils-perl # apt-get install -y libpath-class-perl # apt-get install -y libtext-trim-perl # apt-get install -y libplack-perl # apt-get install -y libplack-middleware-header-perl # apt-get install -y libplack-middleware-reverseproxy-perl # apt-get install -y libconst-fast-perl # cd /opt # wget https://ftp.otobo.org/pub/otobo/otobo-latest-10.1.tar.gz # tar zxvf otobo-latest-10.1.tar.gz # cp -r otobo-10.1.7 /opt/otobo Perlモジュールの確認 # /opt/otobo/bin/otobo.CheckModules.pl -list Required packages: o Archive::Tar.....................ok (v2.38) o Archive::Zip.....................ok (v1.68) o Date::Format.....................ok (v2.24) o DateTime.........................ok (v1.55) o DateTime::TimeZone.............ok (v2.51) o Convert::BinHex..................ok (v1.125) o CGI::PSGI........................ok (v0.15) o DBI..............................ok (v1.643) o DBIx::Connector..................ok (v0.57) o Digest::SHA......................ok (v6.02) o File::chmod......................ok (v0.42) o List::AllUtils...................ok (v0.19) o LWP::UserAgent...................ok (v6.26) o Moo..............................ok (v2.005004) o namespace::autoclean.............ok (v0.29) o Net::DNS.........................ok (v1.33) o Net::SMTP::SSL...................ok (v1.04) o Path::Class......................ok (v0.37) o Sub::Exporter....................ok (v0.988) o Template::Toolkit................ok (undef) o Template::Stash::XS..............ok (undef) o Text::CSV........................ok (v1.95) o Text::Trim.......................ok (v1.04) o Time::HiRes......................ok (v1.9767) o Try::Tiny........................ok (v0.31) o URI..............................ok (v1.71) o XML::LibXML......................ok (v2.0134) o YAML::XS.........................ok (v0.83) o Unicode::Collate.................ok (v1.29) o Plack............................ok (v1.0048) o Plack::Middleware::Header........ok (v0.04) o Plack::Middleware::ReverseProxy..ok (v0.16) o Const::Fast......................ok (v0.014) Recommended features for setups using apache: o ModPerl::Util....................ok (v2.000012) Database support (installing one is required): o DBD::mysql.......................ok (v4.050) Various features for additional functionality: o Encode::HanExtra.................ok (v0.23) o Net::LDAP........................ok (v0.68) o Crypt::Eksblowfish::Bcrypt.......ok (v0.009) o XML::LibXSLT.....................ok (v1.99) o XML::Parser......................ok (v2.46) Features enabling communication with a mail-server: o Net::SMTP........................ok (v3.13) o Mail::IMAPClient.................ok (v3.43) o Authen::SASL.....................ok (v2.16) o Authen::NTLM.....................ok (v1.09) o IO::Socket::SSL..................ok (v2.074) Optional features which can increase performance: o JSON::XS.........................ok (v4.03) o Text::CSV_XS.....................ok (v1.47)
(3)Apacheモジュールのインストール
# a2enmod headers # a2enmod cgid # a2dismod mpm_event # a2enmod mpm_prefork
(4)OTOBOの設定
# cp /opt/otobo/Kernel/Config.pm.dist /opt/otobo/Kernel/Config.pm # cp /opt/otobo/scripts/apache2-httpd.include.conf /etc/apache2/conf-enabled/zzz_otobo.conf # useradd -r -U -d /opt/otobo -c 'OTOBO user' otobo -s /bin/bash # usermod -G www-data otobo # cp /opt/otobo/scripts/apache2-httpd-vhost-80.include.conf /etc/apache2/sites-available/zzz_otobo-80.conf # cp /opt/otobo/scripts/apache2-httpd-vhost-443.include.conf /etc/apache2/sites-available/zzz_otobo-443.conf # a2ensite zzz_otobo-80.conf # a2ensite zzz_otobo-443.conf # mkdir /opt/otobo/var/tmp # /opt/otobo/bin/otobo.SetPermissions.pl # systemctl restart apache2 # ps -ef | grep apache2 root 78837 1 0 05:58 ? 00:00:00 /usr/sbin/apache2 -k start www-data 78838 78837 0 05:58 ? 00:00:00 /usr/sbin/apache2 -k start www-data 78839 78837 0 05:58 ? 00:00:00 /usr/sbin/apache2 -k start root 78897 77982 0 05:58 pts/0 00:00:00 grep --color=auto apache2
(5)OTOBOのセットアップ
以下のURLからOTOBOのセットアップをします。
http://XXX.XXX.XXX.XXX/otobo/installer.pl
セットアップが完了したら。以下のURLから最後に表示されたパスワードでログインすると、利用可能えです。
http://XXX.XXX.XXX.XXX/otobo/index.pl
ID : root@localhost
PW: 画面に表示されたパスワード
2023/08/22 桜井耕造
本日は、Pleasanterといノーコード、ローコードのOSSを紹介します。何かデータを纏める時にExcelを活用するかと思いますが、複数人でデータの更新したり、他のExcelのデータと連携したいとなったら、Webシステム化すると便利になってきます。そんな時にPleasanterを使うと簡単にWebシステムに出来るようになります。Plesanterとは、どんなツールかは以下のURLでご確認下さい。
ここでは、Pleasanterのインストールの方法を紹介します。
インストール環境は、以下となります。
Ubuntu 22.04 LTS
PostgreSQL 14.7
Nginx 1.18
Pleasanter 1.3.37
(1).Netパッケージの削除
# apt upgrade # apt remove 'dotnet*' 'aspnet*' 'netstandard*' # vi /etc/apt/preferences --- Package: dotnet* aspnet* netstandard* Pin: origin "packages.microsoft.com" Pin-Priority: -10 ---
(2).NETをスクリプトでインストール
# wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh # chmod +x ./dotnet-install.sh # ./dotnet-install.sh -i /usr/local/bin
(3)GDI+のインストール
# apt install -y libgdiplus
(4)PostgreSQLのインストール
# apt -y install vim bash-completion # wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add # echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list # apt install -y postgresql-14 postgresql-client-14 # cd /etc/postgresql/14/main/ PostgreSQLの認証方式の設定 # cp -ip pg_hba.conf pg_hba.conf.20230509 # vi pg_hba.conf METHODの設定を以下のように修正する。 ---- # IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256→md5 # IPv6 local connections: host all all ::1/128 scram-sha-256→md5 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 scram-sha-256→md5 host replication all ::1/128 scram-sha-256→md5 ---- PostgreSQLのログ出力設定 # cp -ip postgresql.conf postgresql.conf.20230509 # vi postgresql.conf 以下のように修正する。 ----- log_destination = 'stderr' logging_collector = on log_line_prefix = '[%t]%u %d %p[%l]' ----- PostgreSQLのサービス再起動、サービス化 # systemctl restart postgresql # systemctl enable postgresql Synchronizing state of postgresql.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable postgresql PostgreSQLユーザの設定 PostgreSQL管理用のユーザー"postgres"(OSのユーザー)にパスワードを設定します。 # passwd postgres New password: ←パスワード Retype new password: ←パスワード passwd: password updated successfully # su – postgres $ psql -U postgres psql (14.3 (Ubuntu 14.3-0ubuntu0.22.04.1)) Type "help" for help. postgres=# PostgreSQLの管理ユーザー "postgres" のパスワードを設定 postgres=# alter role postgres with password 'パスワード'; ALTER ROLE プリザンター用のデータベース "Implem.Pleasanter" を作成します。 postgres=# create database "Implem.Pleasanter"; CREATE DATABASE 以下のコマンドで作成したDBの確認を行います。 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------------+----------+----------+-------------+-------------+----------------------- Implem.Pleasanter | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) 全文検索用モジュール(pg_trgm)のインストール テキストの全⽂検索に必要なモジュール(pg_trgm)をインストールします。 postgres=# \c "Implem.Pleasanter" Implem.Pleasanter=# create extension pg_trgm;
(5)Pleasanter1.3.37をインストール
# wget https://github.com/Implem/Implem.Pleasanter/releases/download/Pleasanter_1.3.37.3/Pleasanter_1.3.37.3.zip # apt install -y unzip # unzip Pleasanter_1.3.37.3.zip # mkdir /web # mv pleasanter/ /web/. # cd /web/pleasanter/Implem.Pleasanter/App_Data/Parameters # cp -ip Rds.json Rds.json.20230509 # vi Rds.json 以下を修正する。 --- { "Dbms": "PostgreSQL", "Provider": "Local", "TimeZoneInfo": "Asia/Tokyo", ←追記 "SaConnectionString": "Server=localhost;Database=postgres;UID=postgres;PWD=パスワード", ←修正 "OwnerConnectionString": "Server=localhost;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=SetAdminsPWD", "UserConnectionString": "Server=localhost;Database=#ServiceName#;UID=#ServiceName#_User;PWD=SetUsersPWD", "SqlCommandTimeOut": 600, ←修正 "MinimumTime": 3, "DeadlockRetryCount": 4, "DeadlockRetryInterval": 1000, "DisableIndexChangeDetection": true } ---
(6)CodeDefinerの実行
# cd /web/pleasanter/Implem.CodeDefiner # dotnet Implem.CodeDefiner.dll _rds <INFO>が多数表示され、最後に以下が標準出力されることを確認する。 <SUCCESS> Starter.ConfigureDatabase: Database configuration has been completed. <SUCCESS> Starter.Main: All of the processes have been completed.
(7)Pleasnterの起動確認
# cd /web/pleasanter/Implem.Pleasanter # dotnet Implem.Pleasanter.dll 以下のコマンドで動作確認したら、「Ctrl+C」で終了します。 別のターミナルで以下のコマンドを実行し、プリザンターが起動していることを確認します。 # curl -v http://localhost:5000/ * Trying 127.0.0.1:5000... * Connected to localhost (127.0.0.1) port 5000 (#0) > GET / HTTP/1.1 > Host: localhost:5000 > User-Agent: curl/7.81.0 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 302 Found < Content-Length: 0 < Date: Tue, 07 Jun 2022 04:59:38 GMT < Server: Kestrel < Location: http://localhost:5000/users/login?ReturnUrl=%2F < X-Frame-Options: SAMEORIGIN < X-XSS-Protection: 1; mode=block < X-Content-Type-Options: nosniff < * Connection #0 to host localhost left intact
(8)Pleasanterサービス用スクリプトの作成
/etc/systemd/system/pleasanter.service を以下の内容で新規作成します。 # vi /etc/systemd/system/pleasanter.service --- [Unit] Description = Pleasanter Documentation = Wants=network.target After=network.target [Service] ExecStart = /usr/bin/dotnet Implem.Pleasanter.dll WorkingDirectory = /web/pleasanter/Implem.Pleasanter Restart = always RestartSec = 10 KillSignal=SIGINT SyslogIdentifier=dotnet-pleasanter User = root Group = root Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy = multi-user.target ---
(9)サービスとして登録・サービスの起動
# systemctl daemon-reload # systemctl enable pleasanter Created symlink /etc/systemd/system/multi-user.target.wants/pleasanter.service → /etc/systemd/system/pleasanter.service. # systemctl start pleasanter
(10)リバースプロキシ(NginX)のセットアップ
# apt install -y nginx # systemctl enable nginx # vi /etc/nginx/conf.d/pleasanter.conf --- server { listen 80; server_name 192.168.X.X; client_max_body_size 100M; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } --- # systemctl restart nginx
(11)Pleasanterにログイン
以下のURLからログインします。
http://XX.XX.X.X/users/login
ID: Administrator
PW: pleasanter(初期パスワード)
参考URL; https://pleasanter.org/manual/getting-started-pleasanter-ubuntu
2022/06/28 平見知久
Ubuntu 24.04だと、OTRSのフォークであるZnunyは公式レポジトリに登録されています。
$ lsb_release -d Description: Ubuntu 22.04 LTS $ apt search znuny Sorting... Done Full Text Search... Done otrs2/jammy 6.2.2-2 all Open Ticket Request System Znuny
ご存知のかたもいらっしゃると思いますが、OTRSはオープンソースからプロプライエタリへと切り替わったため、後継としてznunyが採用となったというところでしょうか。otrs2というパッケージ名にそんな含みを感じます。
なお、2022/06/24時点でのZnunyの最新版は6.3.4となります。やや古いバージョンですし、6.2.xはLTS扱いではありません(現時点では6.0/次のLTSは6.5予定がZnunyとしてのLTS扱いです)ので本番用途にはあまりお勧めできませんが、とりあえず触ってみる分には問題ないかと思います。
2022/06/27 平見知久
Znunyのロードマップが更新されています。
https://www.znuny.org/en/roadmap
現時点では6.0.44と6.3.2が最新でざっくりいうと6.0が今年いっぱいで次のLTSが6.5で2024年いっぱいとなります。
6.3等の6.x系は原則次のリリースまでとなっています。これまでの実績から考えるとだいたい3~4ヶ月となります。
- 6.0 LTS (リリース済み): EOL 22末 or 6.5リリースまで
- 6.3.2(リリース済み): EOL:6.4リリースまで
- 6.4 : 6~7月リリース予定 EOL: 6.5リリースまで
- 6.5 LTS: 2022Q4 or 2023Q1(2022末or2023年初) EOL: 2024/12/31
- 7 : 2023 Q1予定
EOLが明示されるのはありがたいのですが、期間がちょっと短いなぁ..
2022/05/16 平見知久
今回は開発者向けのおはなしです。
お遊びでVue.js触ろうと思って、vue-cliでプロジェクトのscaffoldを作成したのですが、ホットリロードが効かない。ググると結構あるあるのようです。ただ、スタックのバージョンによってころころ変わるようで、ググった限りで同じ方法で解決している方いらっしゃらなかったのでメモ兼ねてご紹介しておきます。
スタックは以下の通り。2022/5/15時点の組み合わせです。
- nodejs: 18.1.0
- npm: 8.8.0
- @vue/cli : 5.0.4
- vue: 3.2.33
Node.jsはWSL上で動かしてブラウザはWindows側です。
結論から行くと、vue.config.jsを以下のように編集。
const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ transpileDependencies: true, configureWebpack: { watchOptions :{ aggregateTimeout: 300, poll: 1000 } } })
私の環境ではこの設定でホットリロードかかるようになりました。
ググって試したのを書いておくと、
https://qiita.com/ntm718/items/6023b0063f78d53192a1
module.exports = { configureWebpack: { devServer: { watchOptions: { poll: true } } } }
defineConfigがないので合わず。
https://www.miracleave.co.jp/contents/1333/post-1333/
module.exports = defineConfig({ transpileDependencies: true, configureWebpack: { watch: true } })
[DEP_WEBPACK_WATCH_WITHOUT_CALLBACK] DeprecationWarning: A ‘callback’ argument needs to be provided~みたいな警告が出て、起動はするものの効かず。
https://stackoverflow.com/questions/53589853/vue-cli-3-hot-reload-suddenly-not-working-in-browsers
やっぱだめ
module.exports = defineConfig({ transpileDependencies: true, devServer: { watchOptions: { poll: true } } })
Invalid optionsで起動せず。
webpackまわりっぽいので、そっちで調べて
https://github.com/vuejs-templates/webpack/issues/432
あたりからこれまでのいくつかの設定方法を組み合わせて冒頭の設定に行き着きました。
スタックが大きいと厄介ですねぇ。ともあれこれまでの対応を残してくださってる皆様に感謝です。