はじめに
vagrantからssh接続とFTPソフト(Cyberduck)で接続する方法を残しておきます。
今回はCyberduckにしますが、FTPソフトでSFTP対応であればなんでも構いません。
Vagrant接続
前提(Vagrantfileの設定)
Vagrantfileで以下の設定をしておくこと ※ipアドレスは任意
config.vm.network :private_network, ip: “192.168.33.10″
vagrant ssh-configで設定情報を確認
Vagrantディレクトリ(Vagrantfileと同じパス)で接続情報を確認します
接続情報を確認
$ vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/xxxx/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
接続情報のipアドレスを変更します
$ vagrant ssh-config --host 192.168.33.10
接続情報を確認
$ vagrant ssh-config
Host 192.168.33.10
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/xxxx/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
ssh接続(公開鍵認証ログイン)
以下の秘密鍵を使い公開鍵認証でログインします
IdentityFile /Users/xxxx/.vagrant/machines/default/virtualbox/private_key
.ssh/config設定
$ vagrant ssh-config --host 192.168.33.10 >> ~/.ssh/config
ログイン
$ ssh 192.168.33.10
Cyberduck(公開鍵認証ログイン)
ssh-configコマンドより接続情報を確認しCyberduckの新規接続から情報を入力しログインします。
接続情報を確認
$ vagrant ssh-config
Host 192.168.33.10
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/xxxx/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
接続:SFTP(SSHによる暗号化FTP)
サーバ:127.0.0.1 または 192.168.33.10
ユーザ名:vagrant
ポート:2222
秘密鍵:/Users/xxxx/.vagrant/machines/default/virtualbox/private_key
秘密鍵を選択する場合、デフォルトでは隠しファイルが表示されないため、ファイルにたどり着けませんが、Commond + Shift + . を実行することで隠しファイルが表示されるようになります。
公開鍵認証ログインではなく、パスワードログインを行う場合は、秘密鍵認証の設定を行わずに、パスワード[vagrant]でログインできます。
はじめに
Mac/windows/linux側(ホスト)とVagrant側(ゲスト)間でファイルのやり取りを行う場合に、VagrantではSYNCED機能を用意しています。そのため、ftpなどのソフトを介してデータのやり取りを行う必要がなくなります。
またパフォーマンス面もVartualBoxの共有フォルダ機能や、FTPソフトよりもベンチマークで早い結果がでています。
SYNCED機能を使うことで、開発はホストPCで行い、実行はVagrant側のゲストで実行することが簡単にできるようになります。
公式ドキュメント※Synced Folder
http://docs.vagrantup.com/v2/synced-folders/
Vagrantfileの設定(共有/同期)
共有は設定を行わない場合もデフォルトでホストのVagrantfileが置いてあるディレクトリとVagrantの/vagrantが同期状態にあります。
Vagrantfileのsynced_folder設定を変更することで任意に指定することが可能になります。
synced_folderフォーマット
フォーマット:
config.vm.synced_folder “ホストPATH”, “ゲストPATH(Vagrant側)”
例:
config.vm.synced_folder “src/”, “/srv/website”
http://docs.vagrantup.com/v2/synced-folders/basic_usage.html
この場合、ホストのsrcディレクトリとゲストのsrv/websiteディレクトリで同期されます。
synced_folderのオプション
公式ドキュメントにオプションの詳細が記載されています。
create (boolean) – If true, the host path will be created if it does not exist. Defaults to false.
disabled (boolean) – If true, this synced folder will be disabled and won’t be setup. This can be used to disable a previously defined synced folder or to conditionally disable a definition based on some external factor.
group (string) – The group that will own the synced folder. By default this will be the SSH user. Some synced folder types don’t support modifying the group.
mount_options (array) – A list of additional mount options to pass to the mount command.
owner (string) – The user who should be the owner of this synced folder. By default this will be the SSH user. Some synced folder types don’t support modifying the owner.
type (string) – The type of synced folder. If this is not specified, Vagrant will automatically choose the best synced folder option for your environment. Otherwise, you can specify a specific type such as “nfs”.
http://docs.vagrantup.com/v2/synced-folders/basic_usage.html
createオプション
ホストパスが存在しない場合にホストのパスを自動作成する場合に設定します。デフォルトはfalse設定です。
指定方法:
config.vm.synced_folder “src/”, “/srv/website”, create: true
disabledオプション
同期を無効化にする場合に設定します。デフォルトはfalse設定です。
指定方法:
config.vm.synced_folder “src/”, “/srv/website”, disabled: true
groupオプション
ディレクトリを所有するグループを設定します。デフォルトはSSHユーザ(vagrant)です。
指定方法:
config.vm.synced_folder “src/”, “/srv/website”, group: “root”
普通ownerと合わせて使用します
config.vm.synced_folder “src/”, “/srv/website”, group: “root”, owner: “root”
mount_optionsオプション
mountのオプションを設定します。配列でオプションを渡します。デフォルトは空です。
指定方法:
mount_options: ["dmode=777", "fmode=777"]
ディレクトリ・ファイルのパーミッションを777設定にしてます
ownerオプション
ディレクトリを所有する所有者を設定します。デフォルトはSSHユーザ(vagrant)です。
指定方法:
config.vm.synced_folder “src/”, “/srv/website”, owner: “root”
typeオプション
同期化されたディレクトリの種類を設定します。vagrantは自動的に環境にあったタイプを設定してくれます。
typeは4種類あり、virtualbox,rsync,nfs,smbです。
virtualboxはvirtualbox付属の共有機能を使い、smbはwindows専用、smbはmac/linux専用となります。
そのためmacの場合はnfsかrsyncを使うことになります。virturalboxは無視しておきます。
virtualbox:
http://docs.vagrantup.com/v2/synced-folders/virtualbox.html
rsync:
http://docs.vagrantup.com/v2/synced-folders/rsync.html
nfs:
http://docs.vagrantup.com/v2/synced-folders/nfs.html
smb:
http://docs.vagrantup.com/v2/synced-folders/smb.html
指定方法:
config.vm.synced_folder “src/”, “/srv/website”, type: “nfs”
typeオプションのrsync設定
typeをrsyncにした場合、linuxコマンドのrsyncを使って同期を行います。
https://download.samba.org/pub/rsync/rsync.html
同期はホスト側でvagrant up / vagrant reload / vagrant rsync / vagrant provision のいずれかのコマンドで行います。
config.vm.synced_folder “src/”, “/srv/website”, type: “rsync”
rsyncコマンドでパラメータとして渡しているデフォルト値は[“–verbose”, “–archive”, “–delete”, “-z”, “–copy-links”]になります。
rsyncのその他設定情報についてはドキュメントを参照ください
http://docs.vagrantup.com/v2/synced-folders/rsync.html
はじめに
vagrantへlocalhostではアクセスできる状態でも、Vagrantfileで指定しているipアドレスでアクセスができない場合があります。
config.vm.network :private_network, ip: “192.168.33.10″
そういった場合の解決策をメモしておきます。
エラーについて
vagrant環境の直下(Vagrantfileがある場所)でvagrantのreloadコマンドを実行します
$ vagrant reload
事象の場合エラーが発生します
[drive] Configuring and enabling network interfaces…
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!ARPCHECK=no /sbin/ifup eth1 2> /dev/null
Stdout from the command:
Device eth1 does not seem to be present, delaying initialization.
Stderr from the command:
原因
vagrantでパッケージをした場合などに、MACアドレスとのマッピングがうまくいかなくなってエラーが起こっているようです。
そのためマッピングを一度無効にすることで解決します。
無効化は以下のようになります
sudo ln -sf /dev/null /etc/udev/rules.d/70-persistent-net.rules
解決策
vagrantへsshで接続します
$ vagrant ssh
そして以下のコマンドでマッピングを無効化します
$ sudo ln -sf /dev/null /etc/udev/rules.d/70-persistent-net.rules
vagrantを抜けます
$ exit
再度reloadします
$ vagrant reload
これでエラーが無事にでなくなります。
この状態でVagarantfileで指定しているipアドレスでアクセスができるようになります。
config.vm.network :private_network, ip: “192.168.33.10″
はじめに
Vagrantの仮想マシン上でrails serverで実行した場合のローカルPCからアクセスする方法をメモしておきます。
Vagrantの仮想マシンにローカルPCよりブラウザアクセスする方法
vagrantの設定ファイルVagrantfileを修正し、ipアドレスの設定、ポートの設定を行います。
ポートはrails仕様で3000番ポートが使用されるため、仮想環境の3000番ポートをローカルPCの3000番ポートに転送(ポートフォワード)を行います。
手順1「IPアドレスの設定」
Vagrantfileの下記行のコメントアウトを外します。
ここで指定するipアドレスがローカルPCからアクセスするIPアドレスになります。
# config.vm.network :private_network, ip: "192.168.33.10" config.vm.network :private_network, ip: "192.168.33.10"
手順2「ポートフォワードの設定」
Vagrantfileの下記行のコメントアウトを外し、ポート設定を行います。
vagarant仮想環境のポート3000番をローカルPCのポート3000番にポートフォワードします
# config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network :"forwarded_port", guest: 3000, host: 3000
手順3「3000番ポートをファイアウォールより開放」
iptablesを無効にしている場合は全ポート開放されているため個別の開放は不要です。
下記よりファイアウォールを切る事ができます
$ sudo service iptables stop $ sudo chkconfig iptables off
個別に3000番ポートのみ開放する場合はiptablesファイルを編集します。
$ sudo vi /etc/sysconfig/iptables
追加記載:
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
手順4「Vagrantfileの設定反映」
Vagrant up していない場合:
$ vagrant up
既にVagrant up している場合:
$ vagrant reload
手順5「rails serverでプロジェクトの起動」
vagrant仮想マシンへssh接続
$ vagrant ssh
Railsプロジェクトのディレクトリ直下でrails server コマンド実行
$ rails server
※ rails s と省略してよし
ローカルPCよりアクセスの確認
ブラウザURI指定
http://192.168.33.10:3000/ または http://localhost:3000/
「Welcome aboard」が表示されればOKです
Vagrant(CentOS) + VirtualBoxでRailsの開発環境を構築するときのメモ
Vagrantは、仮想化マシン(VirtualBox,VM etc)の自動作成・管理ツール。
今回はVirtualBoxでCentOSを使用し、Railsの環境を構築しておく。
一度テンプレート化しておくと、次回以降に同様の環境を作成するのが楽になる。
公式サイト:
Vagrant
https://www.vagrantup.com/
VirtualBox
https://www.virtualbox.org/
Vagrant + VirtualBoxダウンロード・インストール
OSにあわせて公式サイトよりダウンロードを行う
現在2015/3/2時点でCentOS[7.0],Vagrant[1.7.3],VirtualBox[4.4.2]のバージョンが最新となっている
Vagrant:
https://www.vagrantup.com/downloads.html
VirtualBox:
https://www.virtualbox.org/wiki/Downloads
ダウンロードしたdmgやmsiファイルからインストール作業を行う
※ウィザードに従いそのままインストールで良い
Vagrantのバージョン確認
バージョン確認:
$ vagrant -v Vagrant version 1.7.3
※インストールバージョンが表示されればインストールOK
Box(CentOS)のテンプレートを取得
Boxリンクが集まっている有名サイト:
http://www.vagrantbox.es/
https://vagrantcloud.com/boxes/search
※今回はCentOS7の最新で仮想ソフトにVirtualBoxを使用しているBoxを選択する:
https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
Boxの追加コマンド:
$ vagrant box add centos https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box Downloading or copying the box... Extracting box... Successfully added box 'centos' with provider 'virtualbox'!
※centos部は任意のboxの名前
「Successfully added box ‘centos’ with provider ‘virtualbox’!」のメッセージが表示されればOK
Boxの確認:
$ vagrant box list centos (virtualbox)
Box(CentOS)のテンプレートから仮想マシンを作成
仮想マシン作成のディレクトリを作成し移動
$ mkdir RailsEnv $ cd RailsEnv
仮想マシンを作成
$ vagrant init centos
※centosはboxに任意につけておいた名前を指定
仮想マシンの起動
仮想マシンの起動
$ vagrant vp
※Vagrantfileの設定情報を読み込み起動する
仮想環境のアクセス(設定)
仮想環境にssh接続を行う
$ vagrant ssh
仮想環境の設定・ツールインストールなど
ファイアーウォールを切っておく ※ローカル環境のためセキュリティは無視
$ sudo service iptables stop $ sudo chkconfig iptables off
vimをインストール
$ sudo yum -y install vim
仮想マシンへブラウザからアクセスするための接続設定 ※Vagrantfileの編集
仮想マシンを抜ける
$ exit
Vagrantfileの編集
$ vim Vagrantfile
ネットワークアクセスのconfigのコメントアウトを解除する(#を消す)
デフォルト設定されている「192.168.33.10」でアクセスができるようになる
# Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network :private_network, ip: "192.168.33.10"
※ 仮想マシンの/var/www/htmlディレクトリへアクセスされる
Vagrantfileの設定反映
$ vagrant reload
仮想マシンの「/var/www/htmlディレクトリ」とローカルの「仮想マシンディレクトリ」のリンク設定
シンボリックリンクを設置
$ vagrant ssh $ ln -s /vagrant /var/www/html/
※ Vagrantでは仮想マシンの「/vagrantディレクトリ」はローカルの「仮想マシンディレクトリ」とリンクしている
Ruby/Rails環境を構築
以前の記事「最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築する」の通り環境を構築する
ここまでで構築完了!
Vagrant+Chefレシピでphp環境の方法をメモ
仮想マシンを構築するvagrantで仮想環境はvirtualboxのcentosとする
centosのBoxを使ってphp + mysql + apache を構築する
1. virtualbox,vagrantをインストールする
公式サイトから各環境に合わせてダウンロードしインストールを実行
Virtualboxインストール
https://www.virtualbox.org/
Vagrantインストール
http://www.vagrantup.com/
2. vagrantのcentosBoxをインストールする
今回は「Vagrant-Box一覧サイト」内のCentOSのBOXを使用する
Vagrant-Boxesインストール
http://www.vagrantbox.es/
http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-i386-v20130427.box
3. chefをインストールする
chefは構築環境の設定内容をコードで記述するもの
Chefインストール
http://www.opscode.com/chef/
マック環境:
curl -L https://www.opscode.com/chef/install.sh | sudo bash
インストール確認
gem list
4. knife-soloプラグインをインストールする
cookbook(開発環境を記したもの)の命令をリクエストするためのものがknifeになる
sudo gem install knife-solo
インストール確認
gem list
5. knife-soloの初期設定をする
knife configure
全てデフォルト設定としてエンターを続けて押し終了する
6. 仮想マシンに使用するvagrantを構築する
・仮想マシンに使用するディレクトリを作成する
mkdir [仮想マシンディレクトリ名] cd [仮想マシンディレクトリ名] vagrant init [boxの名前]
・vagrantファイルの編集
プライベートネットワークを設定しローカル環境からアクセスできるようにする
IPアドレスは初期状態で「192.168.33.10」になっているが変更しても良い
この設定でローカルから仮想環境にipアドレスでアクセスが可能になる
- #config.vm.network :private_network, ip: "192.168.33.10" + config.vm.network :private_network, ip: "192.168.33.10"
7. 仮想マシンを立ち上げる
vagrant up
8. 仮想マシンの状態確認
vagrant status
「default running (virtualbox)」
が表示されればOK
9. sshのエイリアス作成
vagrant ssh-config --host [sshエイリアス名] >> ~/.ssh/config
仮想マシンアクセス方法
vagrant ssh
又は指定したエイリアス名
ssh [エイリアス名]
10. chefのリポジトリを作成する(ローカル側)
knife solo init [リポジトリ名]
リポジトリの中にディレクトリが構成される
※ここではsite-cookbook,nodesディレクトリのみ使用する
11. 仮想マシンをchef対応にする
cd [リポジトリ名] knife solo prepare [sshエイリアス名]
12. cookbookを作成する
cookbookに構築する環境の設定コードを記述することで仮想環境が指定した環境になる
knife cookbook create [cookbookの名前] -o site_cookbooks/
13. cookbookに構築する環境の設定コードを記述する
[リポジトリ名]\[cookbookの名前]\recipes\default.rbファイル編集
# # Cookbook Name:: php # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # service "iptables" do action [:stop, :disable] end %w{php php-common php-mbstring php-xml php-devel php-process php-cli php-pear php-mysql mysql-server}.each do |p| package p do action :install end end # apacheのインストール CentOSの場合 package "httpd" do action :install end # apacheの起動 CentOSの場合 service "httpd" do action [:start, :enable] end template "/var/www/html/index.html" do source "index.html.erb" mode 0644 end
完成例 ※ 「PHP + MYSQL + APACHE」環境
https://github.com/y-matsumoto/php-mysql-apache-vagrant-environment
14. 実行するrecipe(cookbook)を指定する
[リポジトリ名]\nodes\[sshエイリアス名].jsonファイル編集
{ "run_list":[ "recipe[[cookbookの名前]]" ] }
15. 完成したcookbookをvagrant仮想環境へ反映させる
knife solo cook [sshエイリアス名]
16. Webサーバ(apatch)テスト
ブラウザでhttp://192.168.33.10/ へアクセス
[リポジトリ名]\[cookbookの名前]\template\default\index.html.erbが表示される ※完成例
chef test html test desu
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年10月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ