實驗環境
安裝好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