中小企業のサービスフレームワーク+ワードプレスのAnsibleの展開

I.はじめに
運転・保守管理で非常に尊敬企業の自動展開のための、柔軟、効率的で機能豊富なツールとしてansible。テストの後、私は、高可用性、負荷分散対象を達成するために、ansibleデプロイ中小企業のサービスフレームワークを使用していました。間違った場合は私を啓発してください。
ターゲット環境のトポロジー:
中小企業のサービスフレームワーク+ワードプレスのAnsibleの展開

環境の説明:
フロントエンドプロキシ層は、二つのnginxのによって実装され、摺動可能に高可用性を実現keepalivedのアドレスを実装する実装されています。2層のApache + PHP +ワードプレスで構築されたWebアプリケーション環境。Mariadbデータ層は、スペースの制約がマスター・データベース、別々の読み取りを複製してから書いていない成分、(実環境データベースこれらの二つの機能を実装する必要があります)で構成されています。
IP一目:
ホスト名のIP機能
ansibleマスター192.168.23.63 ansibleスーパーバイザ
ansible-VS1 192.168.23.71 VS1(nginxの+ keepalivedの)
ansible-VS2 192.168.23.72 VS2(nginxの+ keepalivedの)
ansible-RS1 192.168.23.61 RS1(HTTPD + +ワードプレスPHP)
ansible 192.168.23.62 RS2-RS2(PHP + +ワードプレスのhttpd)
ansible-MariaDB MariaDB 192.168.23.73

環境の説明:
フロントエンドプロキシ層は、二つのnginxのによって実装され、摺動可能に高可用性を実現keepalivedのアドレスを実装する実装されています。2層のApache + PHP +ワードプレスで構築されたWebアプリケーション環境。Mariadbデータ層は、スペースの制約がマスター・データベース、別々の読み取りを複製してから書いていない成分、(実環境データベースこれらの二つの機能を実装する必要があります)で構成されています。
IP一目:
ホスト名のIP機能
ansibleマスター192.168.23.63 ansibleスーパーバイザ
ansible-VS1 192.168.23.71 VS1(nginxの+ keepalivedの)
ansible-VS2 192.168.23.72 VS2(nginxの+ keepalivedの)
ansible-RS1 192.168.23.61 RS1(HTTPD + +ワードプレスPHP)
ansible 192.168.23.62 RS2-RS2(PHP + +ワードプレス)のhttpd
ansible 192.168.23.73 MariaDB MariaDB-
  
II準備環境:
2.1管理端末のインストールansible、ホストSSHの間の秘密鍵は、鍵ベースの認証を実装するように配置され、あなたがお互いに接続できるかどうかをテスト!
SSH-keygenは-t rsaの#を3回入力し、問題の半分は、暗号化キーかどうか、秘密鍵の保管場所(デフォルト/root/.ssh)を依頼することです。ここでの実験の利便性が暗号化されていません。
SSH-コピー-ID -iの.ssh / id_rsa.pub [email protected]ターゲットホストに公開鍵送信
のssh-コピー-IDを-iの.ssh / id_rsa.pub [email protected]
SSH-コピー-ID -iの.ssh / id_rsa.pub [email protected]
のssh-コピー-ID -iの.ssh / id_rsa.pub [email protected]
のssh-コピー-ID -iの.ssh / id_rsa.pubルート@ 192.168.23.62

2.2編集ansibleホストファイル、すべてのホスト定義
のVimは/ etc / ansible /ホストを
[ウェブ]
192.168.23.61
192.168.23.62
[nginxの】
192.168.23.71 MASTER優先度= 100 STATE =
192.168.23.72 priotity BACKUP = 90 STATE =
[MySQLの]
192.168.23.73

2.3すべての時間同期マスタ
ansibleすべて-a「にntpdate cn.pool.ntp.org」

2.4ディレクトリの役割に関連ansible作成
はmkdir -pvの/ etc / ansible /役割 / {mysqlの、ウェブ、nginxの} / {ファイル、タスク、テンプレート、varsは、ハンドラ、メタ}
第三に、ウェブの脚本の設定:
ファイルを3.1作成の作業を
Vimを/etc/ansible/roles/web/tasks/main.yml

  • 名前:ウェブpakgsをインストール
    YUM:名前= {{アイテム}}
    with_items。
    • httpdの
    • PHP
    • PHP-mysqlの
  • 名前:設定のWeb
    コピー:httpd.confのSRC = DEST =は/ etc / httpdの/ confに/ httpd.confの
    通知:サービスノート#で同じ名前を再起動して##こことハンドラに定義する通知を通知
  • 名前:コピーワードプレス
    同期:SRC =ワードプレスDEST = / var / www / htmlと設定/ワードプレス/
    ##使... ..同步を同期

  • 名前:サービスの再起動
    サービスを:名前= httpdの状態を=開始

3.2ハンドルの作成
Vimの/etc/ansible/roles/web/handlers/main.ymlを

  • 名前:サービス#の就の这の再起動
    、再起動名= httpdの状態=:サービスを

3.3設定ファイルの過去をコピーするために追加
の/ etc / ansible /役割/ウェブで /ファイル/ ①ワードプレス②のhttpd.conf ##テスト対象のディレクトリ設定ファイルのWordPressを修正するためにどこか別の場所から来ました

3.4 WordPressはデータベース接続プロファイル変更
CDのWordPress
のconfig.phpとCP-WP WP-CONFIG-をsample.php
のVimのconfig.php-WP
/ * WordPressのデータベース名 /
DEFINE( 'DB_NAME'、 'WPを');

/ * MySQLデータベースのユーザー名 /
( 'DB_USER'、 'wpuser')を定義します。

/ * MySQLデータベースのパスワード /
( 'DB_PASSWORD'、 'lovelinux')を定義します。

/ * MySQLのホストは、 /
( 'DB_HOST'、 '192.168.23.73')DEFINE。

/ * デフォルトのテーブルを文字データ符号化作成 /
DEFINE( 'DB_CHARSET'、 'UTF8')を、
定義されたDEFINE ##、所定

3.5ウェブマスタースクリプトの追加
vimの/etc/ansible/web.ymlを

  • ホスト:ウェブ
    REMOTE_USER:ルート
    の役割:
    • ウェブ

3.6テスト、問題はない、そして、次のステップに
(-Cは、-check指定された後、ファイルが実際に実行するために脚本を実行しませんが、もう一度シミュレーションを実行するために、その後、この実行の出力は、リモートホストの原因になります修正)
ansible-脚本-C /etc/ansible/web.yml

第四に、プロキシ層を構成する:
4.1タスクタスクの追加
Vimの/etc/ansible/roles/nginx/tasks/main.ymlを

  • 名前:パッケージをインストール
    YUM:名前= {{アイテム}}
    with_items。
    • nginxの
    • keepalivedの
  • 名前:コンフィグkeepalivedの
    テンプレート:SRC = keepalived.conf.j2 DEST =の/ etc / keepalivedの/ keepalived.conf
    通知:再起動keepalivedの
  • 名前:コンフィグnginxのの
    テンプレート:SRC = nginx.conf.j2 DEST =の/ etc / nginxの/ nginx.conf
    通知:再起動nginxの
  • 名前:サービスの開始
    サービスを:名前= {{アイテム}}状態は= YES =有効開始
    with_itemsを:
    • keepalivedの
    • nginxの

4.2ハンドラを追加
vimの/etc/ansible/roles/nginx/handlers/main.yml

  • 名前:keepalivedの再起動
    名= keepalivedの状態=再起動:サービスを
  • 名前:再起動nginxのの
    サービス:名= nginxの状態=再起動

4.3準備テンプレートファイル
①keepalived.conf.j2の②nginx.conf.j2

4.4 keepalivedのテンプレートファイルkeepalived.conf.j2の変更
{global_defsを
{notification_email BR /> [email protected]
}
notification_email_from [email protected]
SMTP_SERVER 127.0.0.1
30 smtp_connect_timeout
{{}}#のROUTER_IDがansibleによって自身の変数をansible_hostnameホストIP -mセットアップクエリ
vrrp_mcast_group4 224.0.0.43
}

{VI_1 vrrp_instance
州ステート} {} {#変数は、ホストファイルによって定義される
インタフェースens33位カード名
51をvirtual_router_idある
優先優先{} {}
advert_int。1つの
認証{
AUTH_TYPE PASS
AUTH_PASSは#パスワードの設定lovelinux
}
virtual_ipaddress {
192.168.23.88#仮想IPを
}
}

(段落で定義されたHTTP)4.5 nginxの修飾されたテンプレートファイルnginx.conf.j2
イベント{
worker_connections 1024; ##デフォルト:1024
}
HTTP
{
上流servers2.mydomain.com {
サーバー192.168.23.61;
サーバ192.168.23.62;
ip_hash。

}

サーバー{
80を聞きます。
SERVER_NAME www.mydomain.com。
ルートは、/ usr / share / nginxの/ htmlの。

location / {
    proxy_pass http://servers2.mydomain.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}
}

4.6 nginxのメインスクリプトの追加
Vimの/etc/ansible/nginx.ymlを

  • ホスト:nginxの
    REMOTE_USER:ルート
    の役割:
    • nginxの

4.7試験、問題はないが、その後に次
ansible-ハンドブック-C /etc/ansible/nginx.yml

5、設定mariadb:
タスクの5.1 mariadbリストを設定するには
/etc/ansible/roles/mysql/tasks/main.yml Vimを
役割/ MySQLの/タスク/ main.yml

  • 名前:インストールmariadb
    YUM:名= mariadb-サーバー
  • 名前:コピーSQLファイルの
    コピー:SRC = mysql.sql DEST =を/ tmp / mysql.sql
  • 名前:MySQLサービスの起動
    開始=名= mariadb状態:サービスを
  • 名前:コンフィグMySQLの
    シェル: "mysqlの</tmp/mysql.sql"

文書ファイルは5.2提供
/etc/ansible/roles/mysql/files/mysql.sql Vimを
CREATE DATABASEのWP;
。* WP ON ALL GRANT 'wpuser' @ '%' 'lovelinux BY' IDENTIFIED TO。

5.3 MySQLのメインスクリプトの追加
Vimの/etc/ansible/mysql.ymlを

  • ホスト:MySQLの
    REMOTE_USER:ルート
    の役割:
    • mysqlの

5.4試験、問題はないが、その後に次
ansible-ハンドブック-C /etc/ansible/mysql.yml

:第六に、(スクリプトを実行)を実行開始した
6.1のディレクトリ構造を

6.2実行
ansible・脚本のweb.ymlを

ansible、脚本nginx.yml

ansible、脚本mysql.yml

6.3 Accessページ
http://192.168.23.88/wordpress

七、プロジェクトの概要:
7.1ウェブ脚本を定義することwordpressのコピーを使用して開始したコピー・モジュールは、そう、ファイルをコピーするためにrsyncを使用して同期、マルチモジュール同期と比べてコピーモジュールの効率性とセキュリティを見つけるためにGoogle、常に失敗し、エラーを実行していますシステムは、rsyncのパッケージをインストールする必要がありますか、このモジュールを使用することはできません。
このモジュールを使用する利点はあり
①増分レプリケーション②(間違っていることが大きなファイルをコピーするコピーと)大きなファイルに優れたサポートをコピーの圧縮コピーを(のみターゲットホストファイルと異なる複製)
1

おすすめ

転載: blog.51cto.com/14355475/2426859