Quantcast
Channel: プログラム の個人的なメモ
Viewing all articles
Browse latest Browse all 860

【Ansible】Ansible ~ 初期構築編 ~

$
0
0

■ はじめに

https://blogs.yahoo.co.jp/dk521123/37419935.html
で扱った ansible の続き。

おおよその流れは、以下の通り。

[1] ゲストOS(管理マシン) から ゲストOS(構築サーバ) にssh通信できるようにする
[2] ゲストOS(管理マシン)にansible をインストールする
[3] (Hello World的なこととして)ゲストOS(構築サーバ)にApacheをインストール

■ 構築環境

あくまで練習用の環境
 * 作業OS               : Windows10
 * 仮想環境             : VirtualBox v5.2.8
 * ゲストOS(管理マシン) : CentOS7 (IP : 192.168.56.1)
 * ゲストOS(構築サーバ) : CentOS7 (IP : 192.168.56.2) <= 管理対象

前提条件

 * VirtualBoxおよびゲストOS(CentOS7)のインストールは行っているものとする
  => それぞれの作業自体は、以下の関連記事を参照のこと。
VirtualBox
https://blogs.yahoo.co.jp/dk521123/31186721.html
CentOS7
https://blogs.yahoo.co.jp/dk521123/36252928.html

■ 構成図

  +--------------+ +--------------+
  | 管理マシン   | | 構築サーバ   |
  |  CentOS7     | |  CentOS7     |
  | 192.168.56.1 | | 192.168.56.2 |
  |              | |              |
  |  Ansible     | |    Apache    |
  +--------------+ +--------------+
  +-------------------------------+
  |           VirtualBox          |
  +-------------------------------+
  |           Windows10           |
  +-------------------------------+

ディレクトリ構成

管理マシン
/home/【ユーザ名】
 + helloworld
   + hosts     ... インベントリファイル(管理対象(構築サーバ)のネットワーク情報を定義)
   + main.yml  ... プレイブック(設定内容(ここではApache)を定義)
main.yml の内容
1) yumでlibselinux-pythonのインストール(SELinux対策)
2) yumでApacheのインストール
3) Apache起動と自動起動化
4) ファイアウォールでHTTP/SSLをあける
5) Apacheの起動確認

■ 手順詳細

[1] 管理マシンから構築サーバにssh通信できるようにする

[1-1] VirtualBox のネットワーク設定
[a] 「Oracle VM VirtualBox マネージャー」を立ち上げて、
  「ゲストOS(管理マシン)」を右クリックし、「設定」を選択
[b] 設定画面において、[ネットワーク]-[アダプター2]を選択し、
     以下を設定し、「OK」ボタン押下
 + ネットワークアダプターを有効化:チェック入れる
 + 割り当て:内部ネットワーク
 + 名前:intnet
[1-2] ゲストOS のネットワーク設定
http://anything.hatenadiary.com/entry/2017/08/13/161328
を参考。

[a] 以下のコマンドで、 NetworkManager Text User Interfaceを立ち上げる
~~~~~~
sudo nmtui
~~~~~~

[b] [Edit a connection]-[enp0s8(文字化けしている可能性あり)]を選択
[c] 以下を設定し、<OK>押下。。
 + IPv4 CONFIGURATION : <Manual>
 + Addresses : 192.168.56.【1~255の任意値】/24(ここでは、「192.168.56.1/24」)
[d] <Back>押下。<Quit>押下。
[e] 以下のコマンドで、 NetworkManager Text User Interfaceを再起動
~~~~~~
sudo systemctl restart NetworkManager
~~~~~~
[1-3] 「ゲストOS(構築サーバ)」に対しても、[1-1]~[1-2]を行う
 IPアドレスは、ここでは、「192.168.56.2/24」にする。

[2] 管理マシンにansible をインストール

[2-1] 管理マシンにansible をインストール
sudo yum install epel-release -y

sudo yum install ansible -y

# 確認1:バージョン確認
ansible --version

# 確認2:[WARNING]が2つほどでるが、エラーがでなければOK
ansible localhost -m ping

[3] 構築サーバを設定する

 * [3-1]は必須ではないが、
[3-1] 構築サーバから、以下のコマンドで、ansible用の実行ユーザ作成
# sudo useradd 【任意のユーザ名】で、ansible用の実行ユーザ作成
sudo useradd ansible

# sudo passwd 【任意のユーザ名】で、ansible用の実行ユーザのパスワードを設定
sudo passwd ansible
# パスワードを設定

# 実行ユーザのsudo権限付与(「 #!!ADD!!」を追記)
sudo visudo
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Defaults specification
Defaults:ansible !requiretty #!!ADD!!

root    ALL=(ALL)       ALL
ansible ALL=(ALL)       NOPASSWD:ALL #!!ADD!!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[3-2] 管理サーバから、以下のコマンドでSSH接続できるか確認する
sudo ssh -l ansible 192.168.56.2

[4] 構築サーバにApacheをインストール

[4-1] インベントリファイル「hosts」を作成する
mkdir -p ~/helloworld
cd ~/helloworld
vi hosts
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[localhost]
192.168.56.12

[all:vars]
ansible_ssh_user=ansible
ansible_ssh_pass=password
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[4-2] プレイブック「main.yml」を作成する
vi main.yml
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- hosts: all
  become: yes
  tasks:
  - name: Install libselinux-python
    yum: name=libselinux-python state=present
  - name: Install Apache
    yum: name=httpd state=latest
  - name: Start Apache
    service: name=httpd state=started enabled=yes
  - name: firewall-cmd allow Apachei(HTTP)
    firewalld: service=http permanent=true state=enabled immediate=true
  - name: firewall-cmd allow Apache(SSL)
    firewalld: service=https permanent=true state=enabled immediate=true
  - name: Check to start Apache
    shell: ps aux | grep httpd
    register: ps_result
    changed_when: false
  - debug: var=ps_result.stdout_lines
    when: ps_result | success
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[4-3] プレイブックを実行
ansible-playbook -i hosts main.yml

[5] 動作確認

[5-1] 構築サーバ内で以下のコマンドを実行する
# Apacheサービスの状態確認
sudo systemctl status httpd

# curlでの確認 (GUIであればブラウザからアクセスでもいい)
curl http://localhost
[5-2] 管理サーバから、以下のコマンドを実行する
# curlでの確認 (GUIであればブラウザからアクセスでもいい)
curl hhttp://192.168.56.12


関連記事

Ansible ~ 基礎知識編 ~

https://blogs.yahoo.co.jp/dk521123/37419935.html

Vagrant ~ 入門編 ~

https://blogs.yahoo.co.jp/dk521123/37431398.html

ssh コマンド / scp コマンド

https://blogs.yahoo.co.jp/dk521123/37291685.html

Apache の設定 ~ CentOS編 ~

https://blogs.yahoo.co.jp/dk521123/36300671.html

Viewing all articles
Browse latest Browse all 860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>