Ansibleでnginxをインストールしてみた

スポンサーリンク

はじめに

Ansibleを使ってnginxをインストールします。内容は以下の通りです。

  • ホスト名を「Web01」にする
  • nginxをインストールする
  • Webサイトのメインページを作成する
  • nginxサービスを起動する

前提条件

Ansibleサーバのインストールが完了しているものとします。インストールが完了していない場合は「Ansibleをインストールしてみた」をご参照下さい。

事前準備

Ansibleサーバで4つの作業を実施します。

  • hostsファイルの変更
  • インベントリファイルの作成
  • プレイブックの作成
  • 鍵ファイルのコピー

hostsファイルの変更

hostsファイルにnginxをインストールするサーバの情報を追加します。2行分追加して下さい。

$ vi /etc/ansible/hosts
[servers]
192.168.188.138

インベントリファイルの作成

inventoryファイルを新規に作成しnginxをインストールするサーバの情報を追加します。2行分追加して下さい。

$ vi /home/ansible/inventory
[web]
192.168.188.138

プレイブックの作成

プレイブックを作成します。

$ vi install_nginx.yml
---
- name: Install Nginx
  hosts: web
  vars:
    ansible_become: yes
    ansible_become_method: sudo

  tasks:
    - name: Change Hostname
      hostname:
        name: web01

    - name: Install Nginx
      yum:
        name: nginx
        state: latest

    - name: Create contents
      copy:
        dest: /usr/share/nginx/html/index.html
        content: "<html><h1>Hello World!</h1></html>"
        owner: ansible

鍵ファイルのコピー

Ansibleサーバから対象サーバへ鍵ファイルをコピーします。

$ ssh-copy-id 192.168.188.138
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ansible@192.168.188.138's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.188.138'"
and check to make sure that only the key(s) you wanted were added.

[ansible@as1 ~]$

nginxのインストール

インベントリファイルとプレイブックを元にnginxをインストールします。

$ ansible-playbook -i inventory install_nginx.yml

PLAY [Install Nginx] ***********************************************************

TASK [Gathering Facts] *********************************************************
ok: [192.168.188.138]

TASK [Change Hostname] *********************************************************
changed: [192.168.188.138]

TASK [Install Nginx] ***********************************************************
changed: [192.168.188.138]

TASK [Create contents] *********************************************************
changed: [192.168.188.138]

TASK [Start Nginx] *************************************************************
changed: [192.168.188.138]

PLAY RECAP *********************************************************************
192.168.188.138            : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

[ansible@as1 ~]$

動作確認

ブラウザのURLに対象サーバのIPアドレスを入力します。Webサーバとして動作していることが確認できました。

コメント

タイトルとURLをコピーしました