Skip to content

CentOS7 Virtual Machine creator by Vagrant and Ansible

Notifications You must be signed in to change notification settings

Takakiriy/multi_vm_ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

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

Languages