git ブランチの一覧表示とともにブランチのコメントを表示する

タスク管理システムのチケット名が、ブランチ名のルールがつけられている場合 ブランチが何を対応しているものであるか分からない。

そのため、作業途中にブランチを切り替えてしまうと、 対応していたブランチはどれだっけ?と探すのに苦労する。

解決するため、コメントなんてつけられて、 ブランチの一覧に表示できたらいいなあと思っていたら、 以下のサイトを見つけた。便利になったわー。神!

gogogodai.com

git branchコマンドでページ表示されるのをやめさせる

ローカルに溜まったブランチを削除したい。 ローカルにあるブランチ一覧を確認するために、

git branch

コマンドを実行しているけど、qキーを押すと一覧は消えちゃって、 別ウインドウを開くか、コピペしてテキストエディタにコピーするかしないと何を消していいのか分からない。

どうすればよいかと調べたら以下のようにしたらよいとわかった。

git config --global pager.branch false

設定があったのね。

VagrantのansibleでSSH接続エラー

Vagrant仮想マシン上でDBサーバを構築するスクリプトを作成している。

いざ実行すると以下のエラーが出た。

{"failed": true, "msg": "ERROR! Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."}

sshで接続しようとしたときに、finger print(証明データ)が登録されていないことが原因だった。

vagrant仮想マシンvagrant sshで入り、ssh XXX.XXX.XXX.XXX を実行すればよいが、 仮想マシンを作り直すたびにやらないといけないのは非常に面倒だ。

色々と調べた結果、プロジェクトのansible/ansible.configに、以下の記載をすれば、上の問題を解決できることがわかった。

[defaults]
host_key_checking = false

セキュリティ的にはよろしくないけど、チェックすると、サーバが変わったりすると落ちる。

エラー内容を見てもどうしたらよいかわからないやつなので、 複数人でプロジェクトに携わっているなら共通の認識としてお話してたほうがよい。

Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or later). The current version is Gradle 4.10.3

Javaのプロジェクトを作成している。 メインアプリとDB Migrationを別にわけて、IntellJでGradle のマルチプロジェクトに使用と設定していたが、 gradleの設定を更新したところ、以下のエラーが出た。

Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or later). The current version is Gradle 4.10.3

どうもIntellJでGradleプロジェクトを作成すると、デフォルトで4.10.3が適用されるようだ。

いろいろ調べた結果、gradle wrapperのバージョンアップで問題は解決できた。

./gradlew wrapper --gradle-version 6.3

windows環境でのみDBテストデータが文字化けする

SpringBootでgradleでビルド実行するアプリケーションを開発しているが、 Windows環境でのみ、DBUnitで読み込んだテストデータが文字化けして、 期待値と一致せずテストエラーになってしまう。Macじゃおきない。

ずっと悩んでたけど、解決方法がわかった。 実行時にJVMのOPTIONに

-Dfile.encoding=UTF-8

を指定すればよかった。

原因は、このfile.encodingはOSのデフォルトコーディングが使われるため、windowsはMS932になってしまう。 なんでこういう仕様にしたんやろね。

Spring Security

仕事でSpring Bootを使ったWebシステムを構築している。

 

サーバサイドはREST APIを返す構成となっているが、社内向けはSSOでログインされたユーザーのみが呼び出せる仕様。

 

そのため、Spring Securityを使用して認証されているかをチェックするのだが、そもそもSpring Security でどういう設定ができるのかが既存のソースコードからはつかめなかった。

 

高度に抽象化されていて、まったくわからない。。。

 

基本から学ぼうと各Spring Securityが書かれていサイトをさまよっているとすごくわかりやすいサイトを見つけた。

 

https://codezine.jp/article/detail/11703

 

これで理解が進みそうだ。

 

VagrantとAnsible

仕事でサーバ構築をすることになりました。 APIサーバとして、Tomcat上でwebアプリケーションを動かさないといけない。

用意してもらったサーバに直接SSHで入ってセットアップしてもいいけど、 手探りでやったら不要なファイルとかできたらやだなあって感じですね。

また、もう負荷分散のため、2台作らないといけないから、同じことやるの面倒なんですね。。。

そういうときに便利なのがVagrantとAnsibleです。

Vagrant

Vagrantは、ローカルPCでVirtualBoxなどを利用した仮想環境を楽に作ってくれるやつです。 普通に開発環境を作ろうとすると

  • OSインストール
  • 基本設定(ネットワーク設定、ssh接続設定、セキュリティ設定など)

をする必要がありますが、Vagrantだと設定ファイルを書いて、一発実行です。

Ansible

Ansibleはコマンド再生機です。 Vagrantで基本設定まで作ってもらった後に、JavaやらTomcatやらをダウンロードするコマンドや、各種設定を行うコマンドを実行することができます。 これもプレイブックと呼ばれるファイルで定義できます。

vagrantもansibleのファイルで定義できるため、gitなどのソース管理も可能です。ぜひ使ってみてください。