それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

macOSからlinuxのvirt-managerのkvm+quemu の仮想マシンを管理する

macOSから 仮想マシンを管理したい。

macから仮想マシンを管理したいと思っても、フロントのアプリケーションがこれというものがありません。

virt-managerを 無理やり起動する brew もあるのですがイマイチです。

git にある tap を読み込んだ場合

brew tap jeffreywildman/homebrew-virt-manager
brew install  virt-manager virt-viewer
virt-manager -c 'qemu+ssh://takuya@192.168.1.144/system?socket=/var/run/libvirt/libvirt-sock'

ステータスを見るくらいしか出来ない。

起動はするが、詳細を設定できない。 f:id:takuya_1st:20200220105617p:plain

X11 に頼る。

古代魔術となってしまったOSXX11 を動かすやつを macOSになった今再度動かすことにする。

brew  cask install  xquartz 

再起動してライブラリを反映

reboot 

ssh 経由でXServerを使う。

どこか適当な踏み台となる、Ubuntu Desktop で Xを実行してそこから virt-managerを開ける。

ssh -X 192.168.1.111

リモートセッションのX11virt-manager

リモートワークしましょう。

f:id:takuya_1st:20200220105317p:plain

linux仮想マシンのフロント

詳細設定をGUIで設定することを考えると、ESXi や vCenter が良いのかもしれない。

普段だと ubuntu desktop を用意していてそこに XRDPするのですが、 今回は、dist-upgrade 中に gnome がエラー吐きまくってubuntu Desktopが一切使えなくなったので苦肉の策。

apt searchは正規表現で絞り込む

apt search で grep すると警告が出るんですね。

takuya@:~$ apt search docker | grep cockpit

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

9:cockpit-docker/stable,now 188-1 all [インストール済み]
10:  Cockpit user interface for Docker containers

apt の結果を grep しちゃうと駄目なんですね。昔にaptitude を使ってた癖でgrep しちゃうんですが。grep じゃ駄目なんですね

apt search の引数は正規表現

apt search の引数って apt-cache と同じで「正規表現」がそのまま使えるんですね。

 apt search 'cockpit|docker$'

ということはで、正規表現をsearchに使うと便利です。

パッケージ名に対して正規表現が出来ます。

takuya@:~$ apt search '^cockpit.*docker$'
ソート中... 完了
全文検索... 完了
cockpit-docker/stable,now 188-1 all [インストール済み]
  Cockpit user interface for Docker containers

takuya@:~$

個人的には、正規表現よりワイルドカードのほうが便利なんですが、grep するより簡単ですね。

aptコマンドでインストール済みを検索する

apt の結果をgrep するといつも警告が出る。

takuya@:~$ apt list --installed | grep docker

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

いつもこれどうしたものかとかと悩んでたんですが。ある日偶然タイプミスして解決方法に気づいたのでメモ

apt の引数にワイルドカードがつけられる。

docker のapt を消して snapd に変更しようとしてて、ワイルドカードを使ってる。

apt purge docker*
apt install docker*
apt list docker*

ワイルドカードが使えるんですね。apt の引数には

apt list の引数は ワイルドカードが取れる

ということは、ワイルドカードで検索ができる。

takuya@:~$ apt list --installed *docker*
一覧表示... 完了
cockpit-docker/stable,now 188-1 all [インストール済み]
docker-ce-cli/now 5:19.03.6~3-0~debian-stretch amd64 [インストール済み、ローカル]
docker-ce/now 5:19.03.6~3-0~debian-stretch amd64 [インストール済み、ローカル]
docker-compose/stable,now 1.21.0-3 all [インストール済み]
golang-docker-credential-helpers/stable,now 0.6.1-2 amd64 [インストール済み、自動]
python3-docker/stable,now 3.4.1-4 all [インストール済み、自動]
python3-dockerpty/stable,now 0.4.1-1 all [インストール済み、自動]
python3-dockerpycreds/stable,now 0.3.0-1 all [インストール済み、自動]

シェルの引数展開ではなくapt

シェルのワイルドカード展開かなともおもってエスケープしたり引数をクォートした。ちゃんとワイルドカードで取ってくれるのがわかる

takuya@:~$ apt list --installed \*docker*
takuya@:~$ apt list --installed \*docker\*
takuya@:~$ apt list --installed '*docker*'
一覧表示... 完了
cockpit-docker/stable,now 188-1 all [インストール済み]
docker-ce-cli/now 5:19.03.6~3-0~debian-stretch amd64 [インストール済み、ローカル]
docker-ce/now 5:19.03.6~3-0~debian-stretch amd64 [インストール済み、ローカル]
docker-compose/stable,now 1.21.0-3 all [インストール済み]
golang-docker-credential-helpers/stable,now 0.6.1-2 amd64 [インストール済み、自動]
python3-docker/stable,now 3.4.1-4 all [インストール済み、自動]
python3-dockerpty/stable,now 0.4.1-1 all [インストール済み、自動]
python3-dockerpycreds/stable,now 0.3.0-1 all [インストール済み、自動]

便利です。

インストール済みのパッケージを探したり、まとめて消すときや、関連するパッケージをまとめて探すのがとても便利になった。