GNU/Linux >> Linux の 問題 >  >> Ubuntu

UbuntuにApacheをインストールしてセットアップするためのAnsiblePlaybook

Ansibleは、オープンソースの構成管理およびアプリケーション展開ツールです。アプリのデプロイを自動化し、ITインフラストラクチャを管理することで、管理オーバーヘッドを削減できます。

ansibleを使用する Ubuntu20.04にapache2ウェブサーバーをインストールします。そのために、 Ansible Playbooksと呼ばれるYAML構文で構成を作成する必要があります 。

通常、制御ノードとホストノードがあります。 Ansibleはコントロールノードにインストールされ、プレイブックを実行してホストノードにデプロイします。このラボでは、単一ノードにインストールして使用します。

Ubuntuへのansibleのインストール

まず、システムを更新します。次のコマンドは、最新のパッケージをフェッチします。

$ sudo apt update

Ansibleは、Ubuntu20.04のベースリポジトリで利用できます。 ansibleをインストールするには、次のコマンドを実行します:

$ sudo apt install ansible -y

次に、コマンド

を使用してAnsibleのバージョンを確認します。
$ ansible --version

ホスト構成ファイルは/etc/ ansible/hostsファイルに保存されます。次のコマンドを使用して、ローカルホストサーバーのIPをファイルに追加します。 sudoユーザーがいることを確認してください。この場合、「ubuntu」にはsudo特権があります。ここでは、「myserver」という名前を付けました。自分で名前を付けることができます。また、ユーザーubuntuはシステム内のsudoユーザーであることを忘れないでください。

$ echo "myserver ansible_host=127.0.0.1 ansible_user=ubuntu" >> /etc/ansible/host

コマンドを使用して確認するだけです

$ ansible myserver -m ping 

下のスクリーンショットのようなポン応答が返されるはずです。

プレイブックの作成

それでは、「apache.yml」という名前のプレイブックを作成して、最新のapacheWebサーバーをインストールして実行しましょう。

$ vi apache.yml

次のコンテンツをファイルに追加します

---
- hosts: myserver
  become: true
  vars:
         - vars/default.yml
- tasks:
    - name: Install latest version of Apache
      apt: name=apache2 update_cache=yes state=latest

    - name: Create document root for your domain
      file:
        path: "/var/www/{{ http_host }}"
        state: directory
        owner: "{{ app_user }}"
        mode: '0755'

    - name: Copy your index page
      template:
        src: "files/index.html.j2"
        dest: "/var/www/{{ http_host }}/index.html"

    - name: Set up virtuahHost
      template:
        src: "files/apache.conf.j2"
        dest: "/etc/apache2/sites-available/{{ http_conf }}"
      notify: restart-apache

    - name: "UFW firewall allow HTTP on port {{ http_port }}"
      ufw:
        rule: allow
        port: "{{ http_port }}"
        proto: tcp

  handlers:
    - name: restart-apache
      service:
        name: apache2
        state: restarted

ここで

  • ホスト :/ etc / ansible/hostsファイルで定義したホスト名です
  • になる:true sudoであるための特権昇格です
  • vars :変数を定義するため
  • タスク :4つのタスクが定義されています。 Apacheのインストール、インデックスページのコピー、仮想ホストの設定、UFWファイアウォールからのhttpの許可(すでに有効になっている場合)。
  • ハンドラー :他のすべてのタスクが成功した場合にapacheを再起動します。

プレイブックに加えて、他の3つのファイルvars / default.yml、files / apache.conf.j2、files/index.html.j2を定義する必要があります。それらを1つずつ作成しましょう。

vars / default.yml

default.ymlファイルには、ドメイン名、構成ファイルの場所、およびhttpポートが含まれています。ファイルを作成し、以下を追加します。

http_host: "mydomain.local"
http_conf: "my_domain.conf"
http_port: "80"

files / apache.conf.j2

apache構成テンプレートには、仮想ホストの構成が含まれています。変数は{{}}内で定義され、上記で定義されたvarsファイルから取得されます。 apache.conf.jsファイルを作成し、次のコンテンツを追加します。

<VirtualHost *:{{ http_port }}>
   ServerAdmin webmaster@localhost
   ServerName {{ http_host }}
   ServerAlias www.{{ http_host }}
   DocumentRoot /var/www/{{ http_host }}
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

files / index.html.j2

もう1つのテンプレートは、インデックスファイルです。ファイルを作成し、次のコンテンツを追加します。要件に応じて変更できます。

<html>
   <head>
       <title>{{ http_host }}</title>
   </head>
   <body>
       <h1>Welcome to {{ http_host }}</h1>
   </body>
</html>

これで、次のコマンドを使用してansible-playbookを実行できます。

$ ansible-playbook apache.yml --ask-become-pass

sudoユーザーのパスワードを入力するように求められます。以下に示すように、ステータスは正常である必要があります。

これにより、デフォルトのポート80でもApacheが実行され、お気に入りのブラウザでローカルホストを参照していることを確認できます。

結論

Ansibleはエージェントレスであり、構成の記述が簡単なため、便利なツールです。 Ansibleの公式ドキュメントからより多くの構成を参照できます。 ansibleでプレイブックを書いているときに問題が発生した場合は、コメントしてください。


Ubuntu
  1. Ubuntu18.04LTSにAnsibleをインストールして構成する方法

  2. Ubuntu18.04および16.04にApacheMavenをインストールする方法

  3. Ansibleを使用してUbuntu20.04にElasticsearchをインストールおよび構成する

  1. Ubuntu20.04にAnsibleをインストールして構成する方法

  2. UbuntuにApacheHiveをインストールする方法

  3. Ubuntu20.04にApacheSparkをインストールして構成する

  1. Ubuntu16.04にEncryptpadをインストールして使用する方法

  2. Ubuntu20.04にApacheHadoopをインストールして構成する方法

  3. Ubuntu16.04にRabbitMQをインストールしてセットアップする方法