マゴN 49第十七週作業
5005 ワード
1、ansibleのplaybookを使ってhttpdの自動化を実現する
1.1変更/etc/ansible/hostsファイルwebserversクラスタの追加
1.2メインプロファイルrole_の作成httpd.yml
1.3関連ディレクトリとファイルの作成
1.4 Playbookの作成
1.5 playbookの文法をチェックする
1.6プレイブックの実行
2、httpdサーバーを創立して、2つの名称に基づく仮想ホストを提供することを要求する:
2.1 www.X.com、ページファイルディレクトリは/web/vhosts/xである.エラー・ログは/var/log/http/x.err、アクセス・ログは/var/log/http/x.access
2.1.2メインプロファイルにvhostsプロファイルの格納ディレクトリを追加する
2.1.3仮想ホストX.confの作成
2.2 www.Y.com、ページファイルディレクトリは/web/vhosts/yである.エラーログは/var/log/http/www 2.err、アクセスログは/var/log/http/y.access
2.2.1仮想ホストY.confの作成
2.3 2つの仮想ホストに対してそれぞれのホームページファイルindex.htmlを作成し、内容はそれぞれその対応するホスト名である.
2.3.1編集/web/vhosts/x/index.html
2.3.2編集/web/vhosts/y/index.html
2.3.3 httpdの再起動
2.3.4 hostsファイルを修正し、ドメイン名解析を追加する
2.3.5アクセステスト
1.1変更/etc/ansible/hostsファイルwebserversクラスタの追加
[root@localhost ansible]# cat hosts
[webservers]
10.0.0.57
1.2メインプロファイルrole_の作成httpd.yml
[root@localhost ansible]# cat role_httpd.yml
---
# httpd role
- hosts: webservers
remote_user: root
roles:
- httpd
[root@localhost ansible]#
1.3関連ディレクトリとファイルの作成
[root@localhost ansible]# tree roles
roles
└── httpd
├── files
│ ├── apr-1.7.0.tar.bz2
│ ├── apr-util-1.6.1.tar.bz2
│ ├── httpd-2.4.46.tar.gz
│ ├── httpd.conf
│ └── httpd.service
├── handlers
│ └── main.yml
└── tasks
├── config.yml
├── group.yml
├── install.yml
├── main.yml
├── service.yml
├── unarch_httpd.yml
└── user.yml
4 directories, 13 files
[root@localhost ansible]#
1.4 Playbookの作成
cat roles/httpd/tasks/group.yml
- name: create apache group
group: name=apache system=yes gid=80
cat roles/httpd/tasks/user.yml
- name: create apache user
user: name=apache system=yes shell=/sbin/nologin home=/var/www/ uid=80 group=apache
cat roles/httpd/tasks/unarch_httpd.yml
- name: unarchive httpd
unarchive: src=httpd-2.4.46.tar.gz dest=/usr/local/src/ copy=yes
- name: unarchive apr
unarchive: src=apr-1.7.0.tar.bz2 dest=/usr/local/src/ copy=yes
- name: unarchive apr-util
unarchive: src=apr-util-1.6.1.tar.bz2 dest=/usr/local/src/ copy=yes
cat roles/httpd/tasks/install.yml
- name: install dependency package
yum:
name: [gcc,pcre-devel,openssl-devel,expat-devel]
state: present
- name: install apr
shell: mv /usr/local/src/apr-1.7.0 /usr/local/src/httpd-2.4.46/srclib/apr
- name: install apr-util
shell: mv /usr/local/src/apr-util-1.6.1 /usr/local/src/httpd-2.4.46/srclib/apr-util
- name: install httpd
shell: cd /usr/local/src/httpd-2.4.46 && ./configure --prefix=/apps/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=event \
&& make && make install
cat roles/httpd/tasks/config.yml
- name: httpd conf file
copy: src=httpd.conf dest=/apps/httpd24/conf/
notify: restart
cat roles/httpd/tasks/service.yml
- name: copy httpd.conf
copy: src=httpd.service dest=/usr/lib/systemd/system/
- name: auto start apache
service: name=httpd state=started enabled=yes
cat roles/httpd/tasks/main.yml
- include: group.yml
- include: user.yml
- include: unarch_httpd.yml
- include: install.yml
- include: config.yml
- include: service.yml
cat roles/httpd/handlers/main.yml
- name: restart
service: name=httpd state=restarted
cat /etc/ansible/role_httpd.yml
---
# httpd role
- hosts: webservers
remote_user: root
roles:
- httpd
1.5 playbookの文法をチェックする
ansible-playbook role_httpd.yml -C
1.6プレイブックの実行
ansible-playbook role_httpd.yml
2、httpdサーバーを創立して、2つの名称に基づく仮想ホストを提供することを要求する:
2.1 www.X.com、ページファイルディレクトリは/web/vhosts/xである.エラー・ログは/var/log/http/x.err、アクセス・ログは/var/log/http/x.access
2.1.2メインプロファイルにvhostsプロファイルの格納ディレクトリを追加する
echo "include conf/vhosts/*/*.conf" >> /apps/httpd24/conf/httpd.conf
mkdir /apps/httpd24/conf/vhosts/{X,Y} -pv
mkdir /var/log/httpd
mkdir /web/vhosts/{x,y} -pv
2.1.3仮想ホストX.confの作成
ServerName www.X.com
DocumentRoot "/web/vhosts/x"
ErrorLog "/var/log/httpd/x.err"
CustomLog "/var/log/httpd/x.access" combined
Options None
AllowOverride None
Require all granted
2.2 www.Y.com、ページファイルディレクトリは/web/vhosts/yである.エラーログは/var/log/http/www 2.err、アクセスログは/var/log/http/y.access
2.2.1仮想ホストY.confの作成
ServerName www.Y.com
DocumentRoot "/web/vhosts/y"
ErrorLog "/var/log/httpd/www2.err"
CustomLog "/var/log/httpd/y.access" combined
Options None
AllowOverride None
Require all granted
2.3 2つの仮想ホストに対してそれぞれのホームページファイルindex.htmlを作成し、内容はそれぞれその対応するホスト名である.
2.3.1編集/web/vhosts/x/index.html
echo www.X.com > /web/vhosts/x/index.html
2.3.2編集/web/vhosts/y/index.html
echo www.Y.com > /web/vhosts/y/index.html
2.3.3 httpdの再起動
systemctl restart httpd
2.3.4 hostsファイルを修正し、ドメイン名解析を追加する
cat /etc/hosts
10.0.0.57 www.X.com www.Y.com
2.3.5アクセステスト
[root@localhost ~]# curl www.X.com
www.X.com
[root@localhost ~]#
[root@localhost ~]# curl www.Y.com
www.Y.com