......ansible实现服务安装、搭建虚拟主机
1、使用ansible的playbook实现自动化安装httpd
0)添加相关的主机信息至主机清单inventory lists
vim /etc/ansible/hosts
[appsrvs]
192.168.37.27
192.168.37.17
1)创建一个专门用于playbook的目录
mkdir /data/playbook/
cd /data/playbook
2)创建YAML文件
vim install_httpd.yml
---
- hosts: appsrvs
remote_user: root
tasks:
- name: yum install
yum: name=httpd
- name: config
copy: src=/data/playbook/httpd.conf dest=/etc/httpd/conf/
- name: service
service: name=httpd state=started enabled=yes
3)检查后执行
ansible-playbook -C install_httpd.yml
ansible-playbook install_httpd.yml
黄色语句表示执行成功且对目标主机做变更
2、建立httpd服务器,要求提供两个基于名称的虚拟主机:
1) www.X.com,页面文件目录为/web/vhosts/x;错误日志为/var/log/httpd/x.err,访问日志为/var/log/httpd/x.access
2) www.Y.com,页面文件目录为/web/vhosts/y;错误日志为 /var/log/httpd/www2.err,访问日志为/var/log/httpd/y.access
3) 为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名
1)先创建各自的页面文件目录及其主页内容
mkdir /web/vhosts/{x,y} -p
echo www.X.com > /web/vhosts/x/index.html
echo www.Y.com > /web/vhosts/y/index.html
2)创建一个独立命名的配置文件test.conf
vim /etc/httpd/conf.d/test.conf
3)添加虚拟主机配置
<virtualhost *:80>
documentroot /web/vhosts/x/ #存放主页的位置
servername www.X.com #主机名称
Customlog "/var/log/httpd/x.access" combined #增加access_log
ErrorLog "/var/log/httpd/x.err" #增加error_log
<Directory '/web/vhosts/x/'> #注意要对该目录授权
require all granted
</Directory>
</virtualhost>
<virtualhost *:80>
documentroot /web/vhosts/y/
servername www.Y.com
Customlog "/var/log/httpd/y.access" combined
ErrorLog "/var/log/httpd/www2.err"
<Directory '/web/vhosts/y/'>
require all granted
</Directory>
</virtualhost>
4)重启
httpd -t #检查语法
systemctl restart httpd
5)测试
curl www.X.com
---> www.X.com
curl www.Y.com
---> www.Y.com
注意,若 curl 192.168.37.7 则会返回第一个配置的网页信息