实验环境

安装好ansible
一、准备测试服务(192.168.10.41)
1、安装HTTP服务
dnf -y install httpd
2、启动HTTP服务
systemctl start httpd
3、使用浏览器访问
192.168.10.41

因为开启了防火墙,所有无法访问
4、开放防火墙的80端口
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

5、再次使用浏览器访问
192.168.10.41

6、编写网页
cd /var/www/html/
vim index.html
添加:
<html>
<head>
<title>hello world</title>
</head>
<body>
<h1>hello abc</h1>
<p>This page is used to test the proper operation of an HTTP server after it has been installed on a Rocky Linux system. If you can read this page, it means that the software is working correctly.</p>
<img src="1.jpg">
</body>
</html>
上传一张图片到/var/www/html目录并改名为1.jpg
7、使用浏览器访问
192.168.10.41

8、修改HTTP服务的默认网页路径
mkdir /mysite
cp /var/www/html/* /mysite/
vim /etc/httpd/conf/httpd.conf
修改:


10、重启HTTP访问并访问
systemctl restart httpd

二、编写安装HTTP服务的playbook(192.168.10.40)
1、创建目录
mkdir /myplaybook
cd /myplaybook/
2、从192.168.10.41上拉取配置文件
ansible -m fetch -a 'src=/etc/httpd/conf/httpd.conf dest=./' 192.168.10.41
mv 192.168.10.41/etc/httpd/conf/httpd.conf ./
3、压缩192.168.10.41的网页文件并拉取到ansible
ansible -m archive -a 'path=/mysite dest=/root/mysite.tar.gz' 192.168.10.41
ansible -m fetch -a 'src=/root/mysite.tar.gz dest=./' 192.168.10.41
mv 192.168.10.41/root/mysite.tar.gz ./
4、编写playbook
vim install-httpd.yml
添加:
- hosts: 192.168.10.42
tasks:
- name: install package
dnf: name=httpd state=installed
- name: modify configfile
copy: src=httpd.conf dest=/etc/httpd/conf/httpd.conf backup=yes
- name: create web directory
file: path=/mysite state=directory
- name: copy web site
copy: src=mysite.tar.gz dest=/mysite
- name: uncompress web package
unarchive: src=/mysite/mysite.tar.gz dest=/ remote_src=yes
- name: set firewalld
firewalld: port=80/tcp state=enabled permanent=yes immediate=yes
- name: start http service
systemd: name=httpd state=started enabled=yes
5、测试运行playbook
ansible-playbook -C install-httpd.yml

因为测试不会创建目录,所以才会报错
列出 Ansible 剧本(playbook)install-httpd.yml 中将会影响的主机(hosts)清单
ansible-playbook --list-hosts install-httpd.yml

列出 Ansible playbook(install-httpd.yml)中定义的所有任务(tasks)
ansible-playbook --list-tasks install-httpd.yml

运行playbook
ansible-playbook install-httpd.yml

6、使用浏览器访问验证
192.168.10.42
