3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Parallels Desktop 16 for Mac で CentOS 7 を目立たないようにコマンド起動

Macユーザーですが、Windows 10 も顧客のサポートのために必要なことがあるので、 Parallels Desktop は導入済みでした。

一方、MacでLinuxのアプリ開発において使うような Docker とか imagemagik だとか、Vue.js とか、もっと言えば rbenv なんかでさえも、 「Macの環境を汚すのでインストールしたくない!」 という説明しがたい感情がありました。

そこで、Parallels Desktopに、CentOS 7 を導入して、そのVMボリューム(ファイル)の中でこういった「汚い?」ことは完結させることにしました。

Parallels Desktopでの CentOS 7の導入自体の説明は省きますが、それをコマンド起動したり、Parallelsのアプリのウィンドウを表示しなくしたりといった設定を以下にまとめます。※Parallels Desktop 16の現時点です。

ParallelsでCentOS 7 をインストールが終わると、 Parallels というユーザーがデフォルトで作られ、GNOME が起動し、Parallels パスワードを設定してくださいという画面になりパスワードを決めて入力します。そこまでは、とりあえず終えているとします。

Macターミナルからのssh接続

Paralells では、CentOSを起動中、Macの/etc/hosts に、自動的に以下が追加されるようです。(10.XXX.XX.X の部分はParalellsが自動で決めたVMのIPアドレスです)

10.XXX.XX.X     centos7.shared centos7 #prl_hostonly shared

ですので、Macのターミナルアプリから

% ssh paralells@centos7
parallels@centos7's password: 

で接続できます。パスワードは、最初に設定したパスワードです。
ParalellsのCentOSを終了すると、/etc/host は自動的に元に戻るようです。

Dockerなどは root でインストールしたい

parallelsユーザーは、wheelを付加されているのでsudoが使えるのですが、いっそ、rootユーザーになってしまった方が楽ちんです。そこで、rootのパスワードも変えてしまします。
parallelsユーザーで sudosu - して root になって、passwd します。

[parallels@centos7 ~]$ groups $USER
parallels : parallels wheel
[parallels@centos7 ~]$ sudo su -
[sudo] parallels のパスワード:
最終ログイン: 2020/08/17 (月) 15:31:06 JST日時 pts/0
[root@centos7 ~]# passwd
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@centos7 ~]#

これで、Macのターミナルから、

% ssh root@centos7 
root@centos7's password: 

でログインできるようになり、
Docker や git、環境に必要なライブラリをrootでインストールできます。

さらに、僕は開発用のユーザーを追加して、普段はこちらでログインして使うことにしています。

[root@centos7 ~]# useradd development

/home/development ディレクトリを開発専用にします。(ParalellsユーザはGNOMEログインしてしまっているので、Desktop, Documentsといった不要なディレクトリがあるので、GNOMEログインしないユーザとしてdevelopmentを設置)

VMをコマンド起動したい

Parallelsのアプリをいちいち起動するのではなく、VM毎にコマンド起動するには

% prlctl start <VMの名前>

で起動できます。CentOS 7のデフォルトのVM名は CentOS 7 なので、起動コマンドを簡単にするために、VMの設定で名前を変更しておきます。例えば centos7 としておけば少し楽です。
fig.png

これでVM起動等に関する各コマンドは以下のようになります(説明省力)。

% prlctl start centos7
% prlctl stop centos7
% prlctl restart centos7
% prlctl pause centos7
% prlctl resume centos7
% prlctl list --all

Parallelsのウィンドウは要らない

CentOSでコマンドしか使わないのであれば、Paralellsのウィンドウも不要です。
表示しない設定がちゃんとありました。

% prlctl set centos7 --on-window-close keep-running

まとめ

以上の設定をすれば、
Macのターミナルアプリから、VMの起動から、開発作業、終了まで一連のことがコマンドだけでできるようになります。

% prlctl start centos7
Starting the VM...
The VM has been successfully started.
% ssh development@centos7
development@centos7's password: 
Last login: Mon Aug 17 15:30:51 2020 from 10.211.55.2
[development@centos7 ~]$ 
……
…… <CentOS上で開発など> ……
……
[development@centos7 ~]$ exit
ログアウト
Connection to centos7 closed.
% prlctl stop centos7    
Stopping the VM...
The VM has been successfully stopped.
% 

Paralellsのウィンドウが表示されることもなく、「静かに?」仕事ができます。

注意点は、startからsshログインできるまでに、当然起動のためのタイムラグが少しあることと(すぐにはsshできない)、 stop することを忘れないこと(使わないならCPUとメモリ資源のムダ)。

なお、Macのファイルは /media/psf 以下にあります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
3
Help us understand the problem. What are the problem?