[root@ser1 ~]# cp /etc/httpd/conf/httpd.conf /project/roles/templates/httpd.conf.j2
# 修改配置文件的內容
[root@ser1 ~]# vim /project/roles/webser/templates/httpd.conf.j2
Listen {{ port }}
User {{ user }}
Group {{ user }}
ServerName {{ ansible_eth0.ipv4.address }}[root@ser1 ~]# grep "^[a-zA-Z]" /project/roles/webser/templates/httpd.conf.j2
ServerRoot "/etc/httpd"
Listen {{ port }}
Include conf.modules.d/*.conf
User {{ user }}
Group {{ user }}
ServerAdmin root@localhost
ServerName {{ ansible_eth0.ipv4.address }}
DocumentRoot "{{ root }}"
ErrorLog "logs/error_log"
LogLevel warn
AddDefaultCharset UTF-8
EnableSendfile on
IncludeOptional conf.d/*.conf
創建web頁面測試文件
[root@ser1 ~]# echo "<h1> test page</h1>">/project/roles/webser/files/index.html
編寫用于做健康檢查的腳本
[root@ser1 ~]# cd /project/roles/webser/files/
[root@ser1 files]# vim check.sh
#!/bin/bash
URL=$1
PORT=$2curl -I http://$1:$2/index.html |grep "200 OK" &>/dev/nullif [ $? -eq 0 ];thenecho "$1 status is ok"
elseecho "$1 status is error"
fi
創建job
[root@ser1 files]# cd /project/roles/webser/tasks/
[root@ser1 tasks]# vim main.yaml
---
- name: install httpsyum: name=httpd state=present
- name: make configrantion filetemplate: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
- name: start httpdservice: name=httpd state=restarted
- name: install test pagecopy: src=index.html dest={{ root }}
- name: make health checkshell: sh roles/webser/files/check.sh {{ ansible_eth0.ipv4.address }} {{ port }}delegate_to: localhostregister: health_status
- debug: msg="{{ health_status }}"
創建主機清單列表
[root@ser1 tasks]# cd /project/inventory/
[root@ser1 inventory]# vim webser
[webser]
10.220.5.112
10.220.5.113
創建入口文件
[root@ser1 inventory]# cd /project/
[root@ser1 project]# vim webser.yaml <<<該文件需要和roles目錄同級
---
- host: allremote_user: rootroles:- webser