日本語│English
       

株式会社アイオーアーキテクトは、オープンソースなどを活用してシステム運用を最適にご提供します。

  • ホーム
  • OTOBO
  • サービス内容
  • 会社案内
  • ラボノート
  • お問い合わせ
  1. HOME
  2. ラボノート
  3. OSS

ラボノート

2022/05/16 平見知久
Tweet
vue-cliで作成したVue.jsプロジェクトでホットリロードが効かない場合の対処

今回は開発者向けのおはなしです。

お遊びで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

あたりからこれまでのいくつかの設定方法を組み合わせて冒頭の設定に行き着きました。

スタックが大きいと厄介ですねぇ。ともあれこれまでの対応を残してくださってる皆様に感謝です。

2022/02/08 平見知久
Tweet
Cytoscape.jsでdockerイメージの依存関係をグラフ表示する

開発環境でdockerを使っているとだんだんイメージ、コンテナが増えてきていざ整理しようとすると収集がつかなくなることが多々あります。イメージは階層構造をとるため、「こいつは一体どのイメージから参照されているのか?消していいものなのか?」と悩むことになりがちです。

皆考えることは似たようなもので以前グラフ表示をしてくれるツールを使っていたのですが名前がわからなくなってしまったのでさらっと作ってしまいました。

グラフ表示は自力でやると大変ですのでCytoscape.jsというライブラリにお世話になることにします。グラフ表示といっても棒グラフや折れ線グラフのほうではなく、依存関係を表す有向グラフの方です。これを使うと有向グラフをいい感じに表示してくれます。ということで、こんな感じのグラフを(比較的)簡単に表示できます。

画像から想像つくかもしれませんが、拡大・縮小や、ノードの位置の移動などもCytoscape.jsがよろしくやってくれます。実際の画面も置いておきますので、気になる方は触ってみてください。

Cytoscape.jsが動いてる画面サンプル

※ 画面サンプルは少し加工してスタティックなHTMLにしていますのでdockerからデータは取ってきていません

ニーズがあるかどうかはわかりませんがせっかくなのでソースはgithubに置いておくことにします。

docker-graph -Show dependency graph of docker images/containers

こちらはコンテナやイメージの状態を取得してそれに応じた表示をしてくれます。

ネタとして今回はdockerのイメージを使いましたがCytoscape.jsは結構使いでがあるライブラリで、構成管理などで複雑な依存関係がある場合などにわかりやすく表示するなど、色々用途が考えられます。時間とやる気ができたらOTOBO/Znuny上で実装するかもしれません。

2022/01/14 平見知久
Tweet
WikipediaでOTRSの後継にZnunyが採用されています

Wikipediaですが、問い合わせ管理にはOTRSが使われていました。((OTRS)) Community Editionの更新がされなくなって今はどうなっているのか気になっていたので調べて見たところ、OTRSからZnunyに移行したようです。

Wikipedia:問い合わせ対応ボランティアチーム

ZnunyもOTOBO同様オープンソース時代のOTRSからフォークしてオープンソースとして活動しているプロジェクトです。昔はオープンソースは敬遠されていた時代もありましたが、こういった事例を見るとメンテナンスが止まるリスクについてはプロプライエタリよりはOSSのほうが優位だとはっきり言えるかと思います(私はストールマンのようなOSS至上主義ではないので全部がOSSが優秀だと言うつもりはないですが)。

OTRSがクローズドに移行するという話を聞いたときに、「フォーク出るんじゃね?」と社内で言っていたのですがまあその通りになりました。ある程度利用されて開発コミュニティが成立しているOSSに関しては開発元が何らかの事情によってプロジェクトの継続ができなくなっても、派生プロジェクトが立ち上がることに期待できます。

有名どころですとCentOSなんかもそうですね。Rockey Linux, AlmaLinux, Lenix等、後継フォークが多数出てきています。

後継者問題に関していえば後継がなくなって消えるものも当然ありますし、逆にCentOSなどのように多数派生が出すぎてどれがいいのか悩んだりという両極端になるのが困りものではあります。

OTRSの場合、現状後継・代替としてはOTOBOとZnunyが本命かと思います。どちらも((OTRS)) Community Edition 6から派生して独自にメンテナンス・拡張が活発におこなわれています。ここまでは既存のOTRSを引き継ぐといった面に力が注がれていました。OTOBOのほうは顧客画面にはだいぶ手をいれていますが、担当者画面についてはOTOBO, Znuny共に機能面ではほとんどOTRSと同じです。ただし今後はおそらくそれぞれ独自の進化のほうにシフトしていくと考えられます。両者それぞれ色が出てくるとおもいますのでチョイスが正直悩ましいところではあります。

一応言及しておくと、OTOBOとZnunyの仲が悪いということはありません。現にOTOBOの一部にはZnuny由来の機能が存在しています。別々にフォークしながらいいところは取り込んでいくといった、OSSらしい良い循環が出来ているように見えます。

個人的には正直「統合してくれないかなー」と思わないところがないわけではないですが、どちらに対してもウオッチ・ささやかながら貢献していくつもりです。

2021/12/22 平見知久
Tweet
gitレポジトリのお引越し

手持ちの雑プロ等の野良gitレポジトリを整理したくて、gogsを導入してみました。レポジトリ管理であれば言わずとしれたGitHubやAWSのCode commitあたりが有名どころでしょう。が、人様にお見せできないような雑なコードをGitHubで晒すのもアレですし、gitlabあたりはさすがに大げさすぎます(メモリ4GBきっちり持ってくのはきついというか、別のサーバに割り当てたい)。そういう観点でいくとgogsはお手軽でサーバのメモリ的にも優しくていい感じです。

で、手持ちのレポジトリを放りこんでいくのですが、ブランチやタグをちまちま指定していくのはやりたくないところです。漏れも怖いですし一括でやって欲しい。

ということで軽く調べたらちゃんとありました。cloneのときに–mirrorオプションをつけて引っ張ってきます。

git clone --mirror git@XXproject.git

このときcloneしたものはbare形式になります。で、移動先にレポジトリを作っておいて、pushするときも–mirrorをつけます。

cd XXproject.git ; git push --mirror git@dst:project.git

git remote add originとかせずにそのままレポジトリを指定します。これで全部のブランチ・タグもまとめて新しいレポジトリに追加されます。

さすがgit、よくありそうなことはちゃんとあるところが素敵です。

ちなみにgogsの場合、これをGUIからやってくれる移行機能がありましたので今回はそっちで移行してしまいましたが、–mirrorつけるやり方多分どのサービスでも共通で行けると思いますのでメモ兼ねて記事にしておきます。

 

2018/10/09 平見知久
Tweet
Dockerコンテナをwebで管理する

弊社では開発環境の一部でDockerを使用しています。いつくしまを開発するようになってからはパッケージ数が増えてきており、パッケージ数 x バージョン で環境が膨れ上がるためにいちいち仮想マシンでやってられないというのが理由の一つです。

ですが、Dockerコンテナがだんだん増えて来ると今度はコンテナやイメージが多すぎて訳がわからなくなるということになりがちです。
ということで、コンテナを管理するGUIのご紹介です。

今だと各種でていますが、私はPortanierを使用しています。

https://hub.docker.com/r/portainer/portainer/

導入も簡単ですし、必要十分な機能が揃っています。 強いて言うなら複数台のホスト管理等には対応していないので小規模向けでしょうか。
まあ、大規模や本番運用であればKubernetes等に行くのでしょうが、小規模でお手軽に利用するという点ではやや重厚すぎる気がするのでお手軽に動かせます。

docker系の多くのプロダクト同様、dockerイメージとして公開されていますので導入は非常に簡単です。
強いて挙げるとすればdockerイメージ側からホストの/var/run/docker.sockにアクセスできるようにする必要がある点でしょうか?

$ docker volume create portainer_data
$ docker run -d -p 9000:9000 –name portainer –restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

イメージを起動してしまえば、 http://<ホストのIP>:9000/で管理画面にアクセスできます。

ダッシュボードはこんな感じです。コンテナやイメージがざっくり概観できます。ホストとしてのstatsはないですが、個別インスタンスのstats(プロセス・CPU使用率等)はインスタンスのページで確認できます。

コンテナの一覧はこんな感じで、当然起動・停止もできますし、renameなどもできます。まとめて停止や削除が地味にうれしかったりします。

webコンソール機能も持っていますので、ブラウザから直接コマンドも叩けます。まあ、ホスト経由でログインしちゃうことが多いですが。

あとスクリーンショットは上げませんがイメージの一覧・管理・削除などもwebからできます。機能的には十分ですね。
利用用途としてはインスタンスの整理(OTRSのバージョンが上がってインスタンスを入れ替えるとき等)がメインで、半分以上はコマンドラインで上げたりしていますので、あくまで補助的な使い方になります。

dockerに限らず運用管理もののアプリの全体的な傾向として、機能がどんどん増えていって仕掛けも大掛かりになって..といったケースが多いですが、「個人的には」こういう小回りの効く軽いアプリは好みだったりします。多機能なのも悪くないのですが、まあ使い分けというところでしょうか。

2015/05/25 桜井耕造
Tweet
CMDBuildのリレーショングラフが表示出来ない

<CMDBuildのリレーショングラフが表示出来ない>

 

Firefoxでリレーショングラフが表示出来ないという事象があったので、確認してみました。
Firefoxでは「shockwave flash」というプラグインをインストールすることで、表示することが出来ます。ち
なみに以下のブラウザでCMDBuildが動作することを確認出来ました。

Firefox Firefox 37.0.2
Google Chrome 42.0.2311.90
Internet Explorer 11

 

2015/04/06 桜井耕造
Tweet
CMDBuildのカードにファイルを添付(Alfresco連携)

<CMDBuildのカードにファイルを添付(Alfresco連携)>

CMDBuildは様々なオープンソースと容易に連携できる機能が搭載されています。以下のようなオープンソースとは、個別にAPI開発をせずに実現することが可能です。ここでは、Alfrescoと連携して、構成アイテム(カード)にファイルを添付したときの利用例を紹介します。
・OCS Inventory NG(インベントリ情報収集)
・SHARK(ワークフロー・エンジン)
・Alfresco(ドキュメント管理)
・Geo Server(地理情報)
・Jasper Reports(レポーティング)

(1)「クラスリスト」から該当のカードを選択

cmdbuild_alfresco01

[画像1: 該当カードを表示]

(2)「添付」タブの「添付追加」を押下
※Alfrescoと連携の設定をしないと「添付」タブはアクティブになりません。

(3)ローカルPCにあるファイルを添付

カテゴリ: 「Document」を選択
添付をロード: 添付したいファイルを指定
説明: ドキュメントの注釈を記入

cmdbuild_alfresco02

[画像2: ファイルを添付]

(4)CMDBuildの画面より確認

cmdbuild_alfresco03

[画像3: CMDBuildの添付ファイルを確認]

(4)Alfrescoの画面より確認

cmdbuild_alfresco04

[画像4: Alfrescoの添付ファイルを確認]

構成アイテムなどで契約書や手順書、設定書などを格納させたいときは、Alfrescoと連携することで実現出来ます。因みにOTRSでもドキュメントを添付させることが可能です。

2015/03/30 桜井耕造
Tweet
CMDBuild2.3.0のインストール手順

<CMDBuild2.3.0のインストール手順>

2015年2月5日に最新版であるCMDBuild2.3.0がリリースされた。CMDBuildはITILv3に準拠した構成管理プロセスに特化したソフトウェアです。ソフトウェア概要は、過去のブログ記事『ITIL構成管理プロセスのオープンソース(CMDBuild)の紹介』
をご参考下さい。ここでは、CMDBuildの操作感を確認するための環境を構築する手順を紹介します。

CentOS7
PostgreSQL9.4
Tomcat7
JDK1.6

(1)Oracle JDK1.6のインストール

CMDBuild2.3.0はOracle JDK1.6を推奨しているので、こちらのバージョンをインストールします。

# sh jdk-6u45-linux-x64-rpm.bin
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
inflating: jdk-6u45-linux-amd64.rpm
inflating: sun-javadb-common-10.6.2-1.1.i386.rpm
inflating: sun-javadb-core-10.6.2-1.1.i386.rpm
inflating: sun-javadb-client-10.6.2-1.1.i386.rpm
inflating: sun-javadb-demo-10.6.2-1.1.i386.rpm
inflating: sun-javadb-docs-10.6.2-1.1.i386.rpm
inflating: sun-javadb-javadoc-10.6.2-1.1.i386.rpm
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
plugin.jar...
javaws.jar...
deploy.jar...
warning: %post(jdk-2000:1.6.0_45-fcs.x86_64) scriptlet failed, exit status 5
Installing JavaDB
Preparing... ########################################### [100%]
1:sun-javadb-common ########################################### [ 17%]
2:sun-javadb-core ########################################### [ 33%]
3:sun-javadb-client ########################################### [ 50%]
4:sun-javadb-demo ########################################### [ 67%]
5:sun-javadb-docs ########################################### [ 83%]
6:sun-javadb-javadoc ########################################### [100%]
Done.
<pre>

現状ではCentOS標準レポジトリ内のOpenJDKが優先されているため、インストールしたOracle JDKに切り替えを行う。

# alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_45/bin/java 300
# alternatives --config java
There are 3 programs which provide 'java'.
  Selection    Command
-----------------------------------------------
*+  1           /usr/java/jdk1.6.0_45/bin/java
Enter to keep the current selection[+], or type selection number: 		← "1"(jdk1.6.0_45)を入力

(2)PostgreSQLのインストール

PostgreSQLをpostgres.orgよりインストールします。

# rpm -ivh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm
# yum --disableplugin=priorities install -y postgresql94-server postgresql94-devel

導入後・DBを初期化する。

# /usr/pgsql-9.4/bin/postgresql94-setup initdb

起動時設定を行う。

# systemctl start postgresql-9.4
# systemctl enable postgresql-9.4

管理者ユーザにパスワードを設定する。

# su - postgres
# psql
psql (9.4.1)
Type "help" for help.
postgres=# alter role postgres password '<DB管理者パスワード>';
ALTER ROLE
postgres=# \q
-bash-4.2$ exit

接続時のアクセス制御設定を変更する。

# vi /var/lib/pgsql/9.4/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local   all             all                                     md5  # <- 変更
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5  # <- 変更
# IPv6 local connections:
host    all             all             ::1/128                 md5  # <- 変更

変更を反映します。

# systemctl restart postgresql-9.4

(3)Tomcat7のインストール

Tomcatをインストールし、設定を修正します。

# yum install -y tomcat

以下の4点を修正します。

JAVA_HOME="/usr/java/jdk1.6.0_45"
JAVA_OPTS="-Dfile.encoding=UTF8 -Xms256m -Xmx1024m -XX:MaxPermSize=256M -server"
TOMCAT_USER="root"
LANG="ja_JP.UTF-8"

(4)JDBCのインストール

PostgreSQL9.4のJDBCドライバをインストールします。

# wget http://jdbc.postgresql.org/download/postgresql-9.4-1200.jdbc4.jar
# cp postgresql-9.4-1200.jdbc4.jar /usr/share/tomcat/lib/

(5)サービススクリプトの修正

サービススクリプトの実行ユーザを変更します。

<pre># vi /usr/lib/systemd/system/tomcat.service
User=root				← rootに修正
Group=root				← rootに修正

(6)tocmatの起動設定を行う。

# systemctl enable tomcat
# systemctl start tomcat

(7)CMDBuildのインストール
CMDBuildを取得し、配布物を展開後、Jarをtomcatのwebapps以下に配備する。

# cd /tmp
# wget http://sourceforge.net/projects/cmdbuild/files/2.3.0/cmdbuild-2.3.0.zip
(略)
100%[=========================================================================================================>] 98,098,155  4.50M/s   in 18s
2015-02-10 07:17:29 (5.27 MB/s) - `cmdbuild-2.3.0.zip' saved [98098155/98098155]
# unzip cmdbuild-2.3.0.zip
Archive:  cmdbuild-2.3.0.zip
(略)
  inflating: cmdbuild-2.3.0/COPYING
  inflating: cmdbuild-2.3.0/README
# cd cmdbuild-2.3.0
# cp cmdbuild-2.3.0.war /usr/share/tomcat/webapps/cmdbuild.war
# systemctl restart tomcat

これでインストール完了です。

(8)CMDBuildの初期設定
ブラウザでCMDBuildにアクセスし、初期設定を行う。URLは以下の通り。
http://<サーバのIP>:8080/cmdbuild/index.jsp

初回起動時にはセットアップの画面に自動的に遷移する。
Choose Default languagesで”日本語”を選択。Show languages selection in login boxにチェックを入れ、Nextを選択する。

CMDBuild_Install1

データベース設定については以下の値を入力する。

CMDBuildデータベースタイプ : “デモ”
データベース名 : “cmdbuild”
Sharkスキーマを作成 : チェックを入れる
ホスト: “localhost”
ポート: “5432”
スーパーユーザー: “postgres”
パスワード:
ユーザタイプ: “スーパーユーザ”

入力後、”テスト接続”ボタンを押し以下の接続成功の画面が表示されることを確認。”OK”でダイアログを閉じ、”次へ”を選択する。

CMDBuild_Install2

管理者名には”admin”、管理者パスワードとパスワード確認には“admin”を入力する。入力後、完了を押す。

CMDBuild_Install3

データベースの設定が完了すると、以下の画面が表示される。OKを押下します。

CMDBuild_Install5

データベースの設定が完了すると、以下の画面が表示されます。管理者名:admin、管理者パスワード:adminでログインします。

  • OTOBO
  • 事業内容
  • 会社案内
  • お問い合わせ
  • ラボノート
  • カテゴリ
    • CMDBuild (1)
    • OCS Inventory NG (3)
    • OpenAudIT (8)
    • OSS (8)
    • OTOBO (62)
    • OTRS (96)
    • SnipeIT (1)
    • Znuny (20)
    • オープンソース (19)
    • 未分類 (1)
    • 豆知識 (8)
    アーカイブ
    • 2025年9月 (2)
    • 2025年7月 (1)
    • 2025年4月 (1)
    • 2025年3月 (4)
    • 2025年2月 (1)
    • 2024年11月 (1)
    • 2024年10月 (5)
    • 2024年9月 (4)
    • 2024年8月 (4)
    • 2024年7月 (5)
    • 2023年12月 (5)
    • 2023年8月 (2)
    • 2022年6月 (2)
    • 2022年5月 (1)
    • 2022年4月 (1)
    • 2022年3月 (2)
    • 2022年2月 (1)
    • 2022年1月 (6)
    • 2021年12月 (16)
    • 2021年11月 (4)
    • 2021年8月 (1)
    • 2021年4月 (1)
    • 2021年3月 (2)
    • 2021年2月 (2)
    • 2021年1月 (2)
    • 2020年5月 (1)
    • 2019年10月 (1)
    • 2019年8月 (1)
    • 2019年6月 (1)
    • 2019年2月 (2)
    • 2018年12月 (1)
    • 2018年10月 (3)
    • 2018年9月 (2)
    • 2018年8月 (1)
    • 2018年7月 (5)
    • 2018年6月 (3)
    • 2017年12月 (3)
    • 2017年11月 (4)
    • 2017年10月 (1)
    • 2017年9月 (2)
    • 2017年8月 (2)
    • 2017年7月 (1)
    • 2017年5月 (2)
    • 2017年4月 (4)
    • 2017年3月 (1)
    • 2017年2月 (3)
    • 2017年1月 (2)
    • 2016年12月 (2)
    • 2016年11月 (4)
    • 2016年10月 (3)
    • 2016年8月 (3)
    • 2016年7月 (1)
    • 2016年6月 (2)
    • 2016年5月 (4)
    • 2016年4月 (2)
    • 2016年3月 (1)
    • 2016年2月 (1)
    • 2016年1月 (2)
    • 2015年12月 (1)
    • 2015年8月 (1)
    • 2015年6月 (1)
    • 2015年5月 (3)
    • 2015年4月 (3)
    • 2015年3月 (3)
    • 2015年2月 (3)
    • 2015年1月 (3)
    • 2014年12月 (4)
    • 2014年11月 (4)
    • 2014年10月 (4)
    • 2014年9月 (2)
    • 2014年8月 (1)
Tweet

〒279-0004 千葉県浦安市猫実1-20-43
MAIL sales@io-architect.com

       
HOME OTOBO 事業内容 会社案内 ラボノート
OTOBO保守サポート 生成AI×業務効率化 会社概要 お問い合わせ
いつくしまパッケージ コールセンターシステム 企業理念  
CRMシステム ITIL準拠運用システム プライバシーポリシー  
コールセンターシステム レガシーシステム支援    
IT資産管理 オープンソース支援    
 導入事例 APIデータ連携支援    
 OTOBOリリース情報 CTO顧問サービス    
© IO Architect Inc. 2016 - 2025
pagetop