[解決済み] Vagrantのプロビジョニング後にユーザとしてコマンドを実行する
2023-06-03 19:23:24
質問
最初のプロビジョニングの後、通常のユーザーとして実行しなければならないコマンドがいくつかあります。 別のシェル スクリプトを使用してこれを行うことができると考え、コマンド
su --login -c <command> vagrant
を使用することで可能と思いましたが、.bashrc からユーザーのパスやその他の環境設定を取得することができません。
などです。
#!/usr/bin/env bash
su --login -c "rbenv install 2.0.0-p353" vagrant
su --login -c "rbenv global 2.0.0-p353" vagrant
su --login -c "gem update --system" vagrant
su --login -c "yes | gem update" vagrant
su --login -c "gem install rdoc" vagrant
su --login -c "gem install rails pg" vagrant
これを行う方法はあるのでしょうか? PuppetやChefのような別のプロビジョニングツールで行う必要があるのでは? をソースとする別のシェルスクリプトを作成することを考えました。
.bashrc
をソースとする別のシェル スクリプトを作成し、それを :file provisioner を使用してボックスにコピーし、そのようにコマンドを実行することを考えましたが、それは一種のハックのように思えます。
正しい方法は何でしょうか?
どのように解決するのですか?
これを行うには Vagrant Shell プロビジョナー を使用すれば可能です。
Vagrant.configure("2") do |config|
$script = <<-SCRIPT
rbenv install 2.0.0-p353
rbenv global 2.0.0-p353
gem update --system
yes | gem update
gem install rdoc
gem install rails pg
SCRIPT
config.vm.provision "shell", inline: $script, privileged: false
end
重要なのは
privileged: false
を指定することで、デフォルトのユーザではなく
root
.
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] ホストからVagrantのゲストに単一のファイルをコピーする最も簡単な方法?
-
[解決済み] フィッシュシェルで環境変数を設定する方法
-
[解決済み] コンソールでシステムシェルを実行するためのEclipseプラグインはありますか?[クローズド]
-
[解決済み] time "コマンドの出力をリダイレクトするには?
-
[解決済み] Vagrantのコマンドは具体的に何をするのですか?
-
[解決済み] シェルコマンドの実行時間を表示する
-
[解決済み] Makefile でスクリプトをソースにするには?
-
[解決済み] Jenkinsでポストビルド後にシェルスクリプトを実行する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] .bashrc、.bash_profile、.environmentの違いは何ですか?
-
[解決済み] grep --includeオプションを複数のファイルタイプに使用するにはどうすればよいですか?
-
[解決済み] Cygwinからファイルを開く
-
[解決済み] リポジトリ 'http://security.debian.org/debian-security buster/updates InRelease' の 'Suite' の値が 'stable' から 'oldstable' に変更されました [閉鎖] 。
-
[解決済み] bashを起動し、新しいシェル内でコマンドを実行し、その後ユーザーに制御を戻すにはどうすればよいですか?
-
[解決済み] time "コマンドの出力をリダイレクトするには?
-
[解決済み] シェルスクリプトを実行する際にJenkinsでビルドを不安定にする方法
-
[解決済み] シェルコマンドの実行時間を表示する
-
[解決済み] Makefile でスクリプトをソースにするには?
-
[解決済み] URLが存在するかどうかをシェルとcurlで確認する方法は?