すみません、と言われると・・・・ いやこちらこそすみません(´・ω・`)・・・なんか・・
vagrant up時の例
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... [default] Importing base box 'centos'... [default] Matching MAC address for NAT networking... [default] Setting the name of the VM... [default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Booting VM... [default] Waiting for machine to boot. This may take a few minutes... [default] Machine booted and ready! GuestAdditions seems to be installed (4.3.6) correctly, but not running. sudo: sudo を実行するには tty がなければいけません。すみません
デプロイ用シェルを実行した時の例
$ ssh deployuser@example.com "./deploy.sh" sudo: sudo を実行するには tty がなければいけません。すみません
deploy.sh
の中にsudoを使っている箇所があると上記エラーとなります。
端末なしのバックグラウンドsudoを許可をする
visudoコマンドで/etc/sudoersファイルを編集します
VMのOS(CentOS6)
# visudo #Defaults requiretty
上記のようにコメントアウトすることで端末なしのsudoが許可となります。
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... [default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Booting VM... [default] Waiting for machine to boot. This may take a few minutes... [default] Machine booted and ready! GuestAdditions 4.3.6 running --- OK. [default] Mounting shared folders... [default] -- /vagrant
OKですね
ユーザーを制限する
上記設定では、すべてのユーザーにttyなしsudoを許可する形になっています。めんどくさくてサボった(´・ω・`)。
本番サーバーにはたくさんのユーザーが居ると思うので、ttyなしsudo可能なユーザーを制限すべきですね
コメントアウトするのをやめて、例外を追記する
# visudo Defaults requiretty Defaults:vagrant !requiretty
本番サーバーでは、デプロイ用のユーザーなどを別途用意していると思うのでそのユーザー名のみを記述する形になるでしょう。