-
Notifications
You must be signed in to change notification settings - Fork 1
Takakiriy/multi_vm_ansible
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
(必要なら)設定を環境に合わせます: #// VM の中の設定なので通常は設定変更不要です 設定: __Control_IP_Address__: 192.168.33.59 __Control_LocalPort__: 2259 __Node1_IP_Address__: 192.168.33.51 __Node1_LocalPort__: 2251 typrm をインストールします: 参考: https://github.com/Takakiriy/typrm 設定をチェックします: Git bash or PowerShell: cd __Project__ typrm check README.yaml チェック内容: ./Vagrantfile: | #file-template: ./Vagrantfile #file-template-any-lines: config.vm.define "node1" do |config| configure config, "192.168.33.51", 2251 #template: __Node1_IP_Address__ #file-template-any-lines: config.vm.define "control" do |config| configure config, "192.168.33.59", 2259 #template: __Control_IP_Address__ ./upload_SSH_keys.sh: | #file-template: ./upload_SSH_keys.sh control_IP_address="192.168.33.59" #template: __Control_IP_Address__ control_local_port="2259" #template: __Control_LocalPort__ #file-template-any-lines: node1_IP_address="192.168.33.51" #template: __Node1_IP_Address__ node1_local_port="2251" #template: __Node1_LocalPort__ ./run_playbook.sh: | #file-template: ./run_playbook.sh control_local_port="2259" #template: __Control_LocalPort__ 設定を変更します: Git bash or PowerShell: | cd __Project__ typrm replace README.yaml "__Node1_IP_Address__: 192.168.33.51" インストールします: VirtualBox をインストールします: - https://www.virtualbox.org/ >> Download VirtualBox X.X >> Windows hosts - ダウンロードしたファイル(例:VirtualBox-6.1.22-144080-Win.exe)を開きます - インストール オプションはデフォルトを使用 - ドライバーはインストールします Vagrant をインストールします: - https://www.vagrantup.com/downloads.html >> Windows(タブ)>> 64-bit - ダウンロードしたファイル(例:vagrant_2.2.16_x86_64.msi)を開きます - インストール オプションはデフォルトを使用 - PC を再起動します Visual Studio Code をインストールします: - https://code.visualstudio.com/ - ダウンロードしたファイル(例:VSCodeUserSetup-x64-1.50.1.exe)を開きます - インストール オプションはデフォルトを使用 - (推奨)VSCode (Visual Studio Code をタスクバーにピン止めします: - (推奨)Ctrl + S キーを押したときに全てのファイルを保存するように設定します: | VSCode >> File >> Preferences >> Keyboard Shortcuts >> save all (と入力) >> File: Save All (をダブルクリック) >> Ctrl + S キー >> Enter キー - 下記の拡張機能(Extensions)をインストールします: - Copy Relative Path Posix #// Copy Relative Path (POSIX) というメニューが追加されます Visual Studio Code で プロジェクト フォルダーを開きます: - VSCode >> File >> Open Folder ... >> __Project__ #または - (shell) code __Project__ Git bash シェルをデフォルトで開くようにします: #label: VSCode Git bash VSCode >> Terminal >> New Terminal >> +の右の↓(シェルの右上)>> Select Default Profile >> Git bash >> ゴミ箱 ボタン(シェルの右上) Git bash シェルを開きます: VSCode >> Terminal >> New Terminal 仮想マシンを作って起動します(プロビジョニングします): (@host) Git bash: vagrant up #// 10分近くかかります。プロンプトに戻ると完了です SSH で (@control)(ansible_local がインストールされた VM)から他の VM に接続できるようにします: 古いサーバーの情報があれば。削除します: (@host) code ~/.ssh/known_hosts : | #// 下記ポート番号の行を削除します [localhost]:2259 #template: __Control_LocalPort__ [localhost]:2251 #template: __Node1_LocalPort__ (@host) Git bash: ./upload_SSH_keys.sh #// Are you sure you want to continue connecting は yes SSH 経由で Ansible playbook を実行します: (@host) Git bash: ./run_playbook.sh 作成したすべての VM の電源を切ります: VirtualBox マネージャー >> __ProjectFolderName___control____ などを選択して右クリック >> 閉じる >> 電源オフ (必要なら).vagrant フォルダーと VM のフォルダーをバックアップします: VM のフォルダー: .vagrant フォルダー: #// VM の情報を持っています Playbook を編集・実行します: VM の電源を入れます: #// VM の電源を入れてホストOS と SSH 接続できるようにします #// 現在の VM が電源オフの状態でも中断の状態(ホストOSをシャットダウンした後の状態)でも同じ手順です VSCode でホストOS の Vagrant プロジェクトを開きます: タスクバーの VSCode を右クリック >> __Project__ VirtualBox マネージャーに VM が表示されていない場合: VirtualBox マネージャー >> 仮想マシン >> 追加 vagrant を起動します: (@host) Git bash: control_only=1 vagrant up #// 下記のサーバーも同時に起動できます: #// control_only=1 は、この Vagrantfile 固有の設定です #// 先に VirtualBox で VM を起動したサーバーは共有フォルダーが使えません #// control サーバー以外は vagrant up では起動しません。後で並列起動して早くするためです #// .vagrant/machines/__ServerName__ フォルダーの有無で判定しています control サーバー以外を VirtualBox から起動します: VirtualBox マネージャー >> __ProjectFolderName___node1____ などをまとめて選択して右クリック >> 起動 >> ヘッドレス起動 (@host) で作業する場合: #// @host は ホストOS です。--step オプションで対話式に使うことはできません (@host) で playbook.yml ファイルなどを編集します: SSH 経由で Ansible playbook を実行します: (@host) Git bash: ./run_playbook.sh #// 上記インストール時にも実行しています (@control) で作業する場合: (未設定なら)SSH でホストOSから各仮想マシンにログインできるように設定します: VSCode の Remote Development 拡張機能をインストールします: VSCode >> 拡張機能 ボタン(左) >> Remote Development VSCode Git bash: - code ~/.ssh/config #// 下記 vagrant ssh-config の出力を最後に貼り付けます - vagrant ssh-config #// SSH の接続に必要な設定が表示されます。すべての VM の設定が一覧されます Visual Studio Code で SSH 接続します: Remote Explorer を最新の表示にします: VSCode >> Remote Explorer(左のアイコン)>> Reflesh ボタン(右上) vagrant フォルダーが表示されている場合: #// VSCode >> Remote Explorer(左のアイコン)>> SSH Targets(左上)>> ホスト名 >> vagrant /: その vagrant /(の右のフォルダー)ボタン vagrant フォルダーが表示されていない場合: SSH 接続します: VSCode >> Remote Explorer(左のアイコン)>> SSH Targets(左上)>> ホスト名(の右のフォルダー)ボタン >> Linux SSH 接続した Visual Studio Code でフォルダーを開きます: VSCode >> File >> Open Folder ... >> /vagrant/ シェルを開けることを確認します: VSCode >> Terminal >> New Terminal #// [vagrant@localhost vagrant]$ と表示されます #// 次回プロジェクトを開いたときにシェルが開いた状態になります Remote Explorer で開いたフォルダーを表示させます: VSCode >> Remote Explorer(左のアイコン)>> Reflesh ボタン(右上) 開けたら Visual Studio Code を閉じます: 次回からログインするときの操作: - タスクバーの VSCode を右クリック >> __Folder__ [SSH:__Server__] #// または - VSCode >> File >> Open Recent >> __Folder__ [SSH:__Server__] #// または - VSCode >> Remote Explorer ボタン(左)>> REMOTE EXPLORER= SSH Targets >> __Server__ >> __Folder__ 繰り返し: 以上をすべての VM について行います ログインして Ansible playbook を編集・実行します: control ノードが開けないとき: 上記 vagrant ssh-config を再実行してください メニュー: タスクバーの VSCode を右クリック >> vagrant [SSH:control] (@host) または (@control) で playbook.yml ファイルなどを編集します: 1つのタスクだけ実行するとき: --limit オプションと --start-at-task オプションを使います: (@control) bash: - export ANSIBLE_INVENTORY="/tmp/vagrant-ansible/inventory/vagrant_ansible_local_inventory" - ansible-playbook playbook.yml --diff -v --step --start-at-task "__TaskName__" - ansible-playbook playbook.yml --diff -v --step --limit "__HostName__" --start-at-task "__TaskName__" - -vvv オプションをつけると最も詳細に状況を表示します (必要なら)既存の VM の電源を入れなおしたとき: --tag オプションを使って再起動時に必要な処理を実行します: (@control) bash: - export ANSIBLE_INVENTORY="/tmp/vagrant-ansible/inventory/vagrant_ansible_local_inventory" - ansible-playbook playbook.yml --list-tasks --tag reboot - ansible-playbook playbook.yml --diff -v --tag reboot
About
CentOS7 Virtual Machine creator by Vagrant and Ansible
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published