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
あたりからこれまでのいくつかの設定方法を組み合わせて冒頭の設定に行き着きました。
スタックが大きいと厄介ですねぇ。ともあれこれまでの対応を残してくださってる皆様に感謝です。
2022/02/08 平見知久
開発環境でdockerを使っているとだんだんイメージ、コンテナが増えてきていざ整理しようとすると収集がつかなくなることが多々あります。イメージは階層構造をとるため、「こいつは一体どのイメージから参照されているのか?消していいものなのか?」と悩むことになりがちです。
皆考えることは似たようなもので以前グラフ表示をしてくれるツールを使っていたのですが名前がわからなくなってしまったのでさらっと作ってしまいました。
グラフ表示は自力でやると大変ですのでCytoscape.jsというライブラリにお世話になることにします。グラフ表示といっても棒グラフや折れ線グラフのほうではなく、依存関係を表す有向グラフの方です。これを使うと有向グラフをいい感じに表示してくれます。ということで、こんな感じのグラフを(比較的)簡単に表示できます。

画像から想像つくかもしれませんが、拡大・縮小や、ノードの位置の移動などもCytoscape.jsがよろしくやってくれます。実際の画面も置いておきますので、気になる方は触ってみてください。
※ 画面サンプルは少し加工してスタティックなHTMLにしていますのでdockerからデータは取ってきていません
ニーズがあるかどうかはわかりませんがせっかくなのでソースはgithubに置いておくことにします。
docker-graph -Show dependency graph of docker images/containers
こちらはコンテナやイメージの状態を取得してそれに応じた表示をしてくれます。
ネタとして今回はdockerのイメージを使いましたがCytoscape.jsは結構使いでがあるライブラリで、構成管理などで複雑な依存関係がある場合などにわかりやすく表示するなど、色々用途が考えられます。時間とやる気ができたらOTOBO/Znuny上で実装するかもしれません。
2022/01/14 平見知久
Wikipediaですが、問い合わせ管理にはOTRSが使われていました。((OTRS)) Community Editionの更新がされなくなって今はどうなっているのか気になっていたので調べて見たところ、OTRSからZnunyに移行したようです。
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 平見知久
手持ちの雑プロ等の野良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 平見知久
弊社では開発環境の一部で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 桜井耕造
<CMDBuildのリレーショングラフが表示出来ない>
Firefoxでリレーショングラフが表示出来ないという事象があったので、確認してみました。
Firefoxでは「shockwave flash」というプラグインをインストールすることで、表示することが出来ます。ち
なみに以下のブラウザでCMDBuildが動作することを確認出来ました。
Firefox Firefox 37.0.2
Google Chrome 42.0.2311.90
Internet Explorer 11
2015/04/06 桜井耕造
<CMDBuildのカードにファイルを添付(Alfresco連携)>
CMDBuildは様々なオープンソースと容易に連携できる機能が搭載されています。以下のようなオープンソースとは、個別にAPI開発をせずに実現することが可能です。ここでは、Alfrescoと連携して、構成アイテム(カード)にファイルを添付したときの利用例を紹介します。
・OCS Inventory NG(インベントリ情報収集)
・SHARK(ワークフロー・エンジン)
・Alfresco(ドキュメント管理)
・Geo Server(地理情報)
・Jasper Reports(レポーティング)
(1)「クラスリスト」から該当のカードを選択
[画像1: 該当カードを表示]
(2)「添付」タブの「添付追加」を押下
※Alfrescoと連携の設定をしないと「添付」タブはアクティブになりません。
(3)ローカルPCにあるファイルを添付
カテゴリ: 「Document」を選択
添付をロード: 添付したいファイルを指定
説明: ドキュメントの注釈を記入
[画像2: ファイルを添付]
(4)CMDBuildの画面より確認
[画像3: CMDBuildの添付ファイルを確認]
(4)Alfrescoの画面より確認
[画像4: Alfrescoの添付ファイルを確認]
構成アイテムなどで契約書や手順書、設定書などを格納させたいときは、Alfrescoと連携することで実現出来ます。因みにOTRSでもドキュメントを添付させることが可能です。
2015/03/30 桜井耕造
<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データベースタイプ : “デモ”
データベース名 : “cmdbuild”
Sharkスキーマを作成 : チェックを入れる
ホスト: “localhost”
ポート: “5432”
スーパーユーザー: “postgres”
パスワード:
ユーザタイプ: “スーパーユーザ”
入力後、”テスト接続”ボタンを押し以下の接続成功の画面が表示されることを確認。”OK”でダイアログを閉じ、”次へ”を選択する。
管理者名には”admin”、管理者パスワードとパスワード確認には“admin”を入力する。入力後、完了を押す。
データベースの設定が完了すると、以下の画面が表示される。OKを押下します。
データベースの設定が完了すると、以下の画面が表示されます。管理者名:admin、管理者パスワード:adminでログインします。