読者です 読者をやめる 読者になる 読者になる

らくがきちょう

なんとなく

Cisco VIRL から Git リポジトリへアクセスする

Cisco Git VIRL

Cisco VIRL では検証した構成や機器のコンフィグを .virl ファイルに保存しておくことが出来ます。.virl ファイルをローカル PC に保存しておくことも出来ますが、GitHub 等のリポジトリに保存しておくと便利です。Cisco VIRL を操作する VMMaestro は Git クライアント機能を持っているのですが、少なくても自分が試す限りはちょっと癖がある??ようなので、Git リポジトリの利用手順をメモしておきます。

気になった点

VMMaestro へ Git リポジトリを登録する手順を説明する前に、現状の VMMaestro で気になった点を記載しておきます。

HTTPS だと、上手く Git リポジトリに繋がらない?

VMMaestro から Git リポジトリにアクセスする際、HTTPS だと上手くクローンされないことがありました。SSH だと問題が無いようです。

「Import as general project」以外で上手くインポート出来ない?

プロジェクトをインポートする手段は以下の 3 つ、ありますが、3 番目の「Import as general project」以外では設定は完了するものの、最終的に Git からクローンされませんでした。

  1. Import existing projects
  2. Use the New Project wizard
  3. Import as general project

インデックスからの削除がリアルタイムで反映されない

VMMaestro に Git リポジトリの登録が完了した後、Git からファイルを削除する為に「Remove from Index」(git rm に相当) を実行しても、プロジェクトファイルのアイコンにインデックスのマークが付いたままでした。VMMaestro を再起動するとアイコンが変わり、変更が反映されました。

検証環境

検証環境は以下の通りです。クライアント OS は OS X を使っているので、当然ながら VMMaestro も OS X 版を使っています。また、GitHub 上には既にリポジトリが存在している前提で進めます。

項目
クライアント OS OS X 10.11.4
Cisco VIRL VIRL 1.1.1 April’16 release
Git リポジトリ GitHub

GitHubSSH 公開鍵を登録しておく

VMMaestro の Git クライアントから HTTPSGitHub へアクセスしてみたのですが『401 authentication required』エラーになってしまいました (VMMaestro からでは無く、CLI からであれば HTTPS アクセスは上手くいく)。コミュニティサイトには Github Push and Sync という投稿があり、私と同じ事象 (401 authentication required エラー) に遭遇している方が複数、いるようです。SSH であれば VMMaestro からでも上手くいくので、今回は SSH を使うことにしました。よって、事前に GitHub に公開鍵を登録しておきます。また、私の環境では秘密鍵をホスト毎に使い分けている都合上、~/.ssh/config へ以下のように追記し、github.com へのアクセス時には適切な秘密鍵が用いられるようにしておきました。

Host github.com
        HostName        github.com
        Port            22
        IdentityFile    [PATH-TO-PRIVATE-KEY]
        User            [USERNAME-FOR-GITHUB]

これで準備完了です。

VMMaestro に Git リポジトリを登録し、クローンする

Select

VMMaestro のメニューから「File → Import...」をクリックします。インポート元を問われるので「Projects from Git」を選択し、次へ進みます。

f:id:sig9:20160515181840p:plain

Select Repository Source

Git リポジトリの位置を選択します。「Clone URI」を選択し、次へ進みます。

f:id:sig9:20160515181849p:plain

Source Git Repository

リポジトリの情報を入力します。以下の項目を入力し、次へ進みます。

URI GitHubリポジトリページからプロトコルを (HTTPS では無く) SSH に変更した状態で URL をコピーし、貼り付ける
Protocol ssh を選択
User GitHub に登録しているユーザ名を入力

f:id:sig9:20160515181858p:plain

Branch Selection

ブランチを選択し、次へ進みます。

f:id:sig9:20160515181903p:plain

Local Destination

リポジトリのクローン先になる、ローカルディレクトリを指定します。

f:id:sig9:20160515181909p:plain

Select a wizard to use for importing projects

プロジェクトをインポートする手段を選びます。選択肢は以下の 3 つ、あります。

  1. Import existing projects
  2. Use the New Project wizard
  3. Import as general project

ですが、3 番目の「Import as general project」以外はなぜか設定完了した後にクローンされません?? (上手くいったこともある気がするのですが…) ですので、「Import as general project」を選択します。

f:id:sig9:20160515181916p:plain

Import Projects

Git のリポジトリからインポートしたプロジェクトに対して、VIRL での名前を付けます。初期値ではリポジトリ名と同じになっているので、このまま次に進みます。

f:id:sig9:20160515181921p:plain

これで設定は完了です。VMMaestro に Git リポジトリからクローンされたプロジェクトが表示されているはずです。

f:id:sig9:20160515181927p:plain

Git の操作

VMMaestro から Git の操作を行うにはプロジェクトを右クリックして表示されるコンテキストメニューの Team メニューを利用します。代表的な操作は以下の通りです。

Git コマンド VMMaestro の操作
git commit Team -> Commit
git push Team -> Remote -> Push
git add Team -> Add to Index
git rm Team -> Remove from Index

f:id:sig9:20160515220511p:plain