当記事はケーススタディの連載となっています。目次は【こちら】です。
最新のソースコードは【GitHub】で公開中です。
サーバの責務はこちらで確認ください。
##1.ローカルファイル⇒リモートコピー設定概要
Ansible管理端末(manageterm)にあるyumではインストールしないミドルウェアや設定ファイル等は「manageterm」に事前に作成しておき「adminserv01」に一旦送る。
##2.playbookファイルの相関
以下に「manageterm」のディレクトリ構造を示す。
ミドルウェアやOS単位にinstaller/settings/firewalldのディレクトリを作成し、その中にZIPファイルや設定ファイルを置く。
outputディレクトリのみ特別で後述するopenvpnで作成したクライアント証明書を配置する。
##3.playbook(site.yml)
${ANSIBLE_HOME}/site.yml
メインとなるplaybook(site.yml)参照
##4.ローカルからリモートへのファイル転送のplaybook(/operations/0071_filescopy.yml)
${ANSIBLE_HOME}/operations/0071_filescopy.yml
# ===================
# ローカル(manageterm)にあるファイルをadminserv01にコピーします。
# (後程adminserv01にNFSサーバを導入します。
# ここまで書いてなんですが実際はローカルからサーバにファイルを置く場合は
# rsyncを使用した方が簡単ですね。
# ===================
- hosts: adminserv01
sudo: no
vars_files:
- ../vars/filedir.yml
remote_user: root
tasks:
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)にJDKを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルをコピーする。
# ===================
- name: JAVA関連コピー
file: state=directory path=/var/opt/data/nfs/java/installer/ follow=no recurse=yes #【4.A:ディレクトリを作成する】
- file: state=directory path=/var/opt/data/nfs/java/settings/ follow=no recurse=yes
- copy: src=../sendfiles/java/installer/ dest=/var/opt/data/nfs/java/installer/. #【4.B:ローカル(manageterm)からリモートのサーバへコピーする】
- copy: src=../sendfiles/java/settings/ dest=/var/opt/data/nfs/java/settings/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)にTOMCATを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: TOMCAT関連コピー
file: state=directory path=/var/opt/data/nfs/tomcat/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/tomcat/settings/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/tomcat/firewalld/ follow=no recurse=yes
- copy: src=../sendfiles/tomcat/installer/ dest=/var/opt/data/nfs/tomcat/installer/.
- copy: src=../sendfiles/tomcat/settings/ dest=/var/opt/data/nfs/tomcat/settings/.
- copy: src=../sendfiles/tomcat/firewalld/ dest=/var/opt/data/nfs/tomcat/firewalld/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)にSeleniumを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: Selnium関連コピー
file: state=directory path=/var/opt/data/nfs/selenium/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/selenium/settings/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/selenium/firewalld/ follow=no recurse=yes
- copy: src=../sendfiles/selenium/installer/ dest=/var/opt/data/nfs/selenium/installer/.
- copy: src=../sendfiles/selenium/settings/ dest=/var/opt/data/nfs/selenium/settings/.
- copy: src=../sendfiles/selenium/firewalld/ dest=/var/opt/data/nfs/selenium/firewalld/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)にJenkinsを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: JENKINS関連コピー
file: state=directory path=/var/opt/data/nfs/jenkins_mvn/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/jenkins_mvn/settings/ follow=no recurse=yes
- copy: src=../sendfiles/jenkins_mvn/installer/ dest=/var/opt/data/nfs/jenkins_mvn/installer/.
- copy: src=../sendfiles/jenkins_mvn/settings/ dest=/var/opt/data/nfs/jenkins_mvn/settings/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)にnfs exportsを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: NFS関連コピー
file: state=directory path=/var/opt/data/nfs/nfs/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/nfs/settings/ follow=no recurse=yes
- copy: src=../sendfiles/nfs/installer/ dest=/var/opt/data/nfs/nfs/installer/.
- copy: src=../sendfiles/nfs/settings/ dest=/var/opt/data/nfs/nfs/settings/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)に
# NMONを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: OS関係:NMON, 環境変数のコピー
file: state=directory path=/var/opt/data/nfs/os/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/os/settings/ follow=no recurse=yes
- copy: src=../sendfiles/os/installer/ dest=/var/opt/data/nfs/os/installer/.
- copy: src=../sendfiles/os/settings/ dest=/var/opt/data/nfs/os/settings/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)に
# Apacheを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: アパッチ関係:サーバ証明書コピー/秘密鍵/SSL設定/apj設定
file: state=directory path=/var/opt/data/nfs/apache/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/apache/settings/ follow=no recurse=yes
- copy: src=../sendfiles/apache/installer/ dest=/var/opt/data/nfs/apache/installer/.
- copy: src=../sendfiles/apache/settings/ dest=/var/opt/data/nfs/apache/settings/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)にMariaDB(MySQL)
# を配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: MarinaDB(MySQL)関係:my.conf
file: state=directory path=/var/opt/data/nfs/mysql/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/mysql/settings/ follow=no recurse=yes
- copy: src=../sendfiles/mysql/installer/ dest=/var/opt/data/nfs/mysql/installer/.
- copy: src=../sendfiles/mysql/settings/ dest=/var/opt/data/nfs/mysql/settings/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)にopenvpnを配置する為のディレクトリを作成
# 作成したらディレクリにローカル(manageterm)から
# インストーラと設定ファイルとfirewalld設定をコピーする。
# ===================
- name: openvpn関係
file: state=directory path=/var/opt/data/nfs/openvpn/installer/ follow=no recurse=yes
- file: state=directory path=/var/opt/data/nfs/openvpn/settings/ follow=no recurse=yes
- copy: src=../sendfiles/openvpn/installer/ dest=/var/opt/data/nfs/openvpn/installer/.
- copy: src=../sendfiles/openvpn/settings/ dest=/var/opt/data/nfs/openvpn/settings/.
# ===================
# adminserv01のNFS共有用ディレクトリ(NFS起動前)に
# OpenVPNで作成したクライアント証明書を保存するフォルダをコピーする
# ===================
- name: OpenVPNにて作成したクライアント証明書を出力するディレクトリの作成
file: state=directory path=/var/opt/data/nfs/output follow=no recurse=yes
# ===================
# NFSルートディレクトリ(/var/opt/data/nfs)配下のオーナー/パーミッション
# を再帰的にinfra/infra 755に変更する
# ===================
- file: group={{path.dir.nfs_root.group}}
mode={{path.dir.nfs_root.permision}}
owner={{path.dir.nfs_root.user}}
path={{path.dir.nfs_root.path}}
state={{path.dir.nfs_root.state}}
recurse=true
##5.変数設定playbook(/vars/filedir.yml)
${ANSIBLE_HOME}/vars/filedir.yml
前回のplaybook(/vars/filedir.yml)を参照。
##6.補足説明
4.ローカルからリモートへのファイル転送のplaybook(/operations/0071_filescopy.yml)内のコメント(#【4.A:ディレクトリを作成する】)及び(#【4.B:ローカル(manageterm)からリモートのサーバへコピーする】)について。
4.A fileモジュール補足
file: state=directory path=/var/opt/data/nfs/java/installer/ follow=no recurse=yes #==>【4.A:ディレクトリを作成する】
208.必要なディレクトリを作成しオーナーとパーミッションを設定するの補足説明でも説明したfileモジュールを使用して、新たにサブディレクトリを作成していく。
- fileモジュール(0071_filescopy.yml内コメント【4.A】より)
名前 | 説明 | 補足 |
---|---|---|
recurse | stateがdirectoryの場合 再帰的に変更 |
chmod -R chown -R |
既に該当のpathがある場合は何もしない |
4.B copyモジュール補足
copy: src=../sendfiles/java/installer/ dest=/var/opt/data/nfs/java/installer/. #【4.B:ローカル(manageterm)からリモートのサーバへコピーする】
copyモジュールは名前からするとリモートサーバ内でのコピーと勘違いしそうだが、実際はAnsibleを操作しているローカル端末からリモートのサーバにファイルをコピーする。
- copyモジュール(0071_filescopy.yml内コメント【4.B】より)
名前 | 説明 | 補足 |
---|---|---|
src | コピー元 | chmod -R chown -R |
dest | コピー先 | リモートのパスを指定 |
scpコマンドは以下の例をイメージすると分かり易いと思う。
例:(scp コピー元 コピー先サーバ:パス)
scp /tmp/abc adminser01:/tmp/aaa
次回は「210.HOSTSを設定する」について。
連載の目次は【こちら】です。