创建Web内容目录:
按照下方所述,创建一个名为 /home/student/ansible/webcontent.yml 的 playbook,该 playbook 在 dev 主机组中的受管节点上运行:
- 创建符合下列要求的目录 /webdev:
- 所有者为 devops 组
- 具有常规权限:owner=read+write+execute,group=read+write+execute,other=read+execute
- 具有特殊权限: set group ID
- 用符号链接将 /webdev 目录链接到 /var/www/html/webdev
- 创建文件 /webdev/index.html,其中包含如下所示的单行文本:Development
- 在 dev 主机组中主机上浏览此目录(例如 http://node1.example.com/webdev/ )将生成以下输出:Development
[root@server ~]# su - student
Last login: Tue Oct 25 15:03:09 CST 2022 on pts/1
[student@server ~]$ cd ansible/
[student@server ansible]$ vim webcontent.yml
---
- name: web station
hosts: dev
tasks:
- name: install httpd semanage
yum:
name:
- httpd
- policycoreutils-python-utils
state: present
- name: create group
group:
name: devops
state: present
- name: create /webdev
file:
path: /webdev
state: directory
group: devops
mode: 2775
- name: create link
file:
src: /webdev
dest: /var/www/html/webdev
state: link
- name: input message to file
copy:
content: Development
dest: /webdev/index.html
- name: set selinux context
sefcontext:
target: /webdev(/.*)?
setype: httpd_sys_content_t
- name: refresh selinux context
shell:
cmd: restorecon -Rv /webdev
- name: start httpd
service:
name: httpd
state: started
enabled: yes
- name: firewalld for http
firewalld:
service: http
state: enabled
permanent: yes
immediate: yes
[student@server ansible]$ ansible-playbook webcontent.yml
PLAY [web station] *********************************************************************
TASK [Gathering Facts] *****************************************************************
ok: [node1]
TASK [install httpd] *******************************************************************
changed: [node1]
TASK [create group] ********************************************************************
changed: [node1]
TASK [create /webdev] ******************************************************************
changed: [node1]
TASK [create link] *********************************************************************
changed: [node1]
TASK [input message to file] ***********************************************************
changed: [node1]
TASK [set selinux context] *************************************************************
changed: [node1]
TASK [refresh selinux context] *********************************************************
changed: [node1]
TASK [start httpd] *********************************************************************
changed: [node1]
TASK [firewalld for http] **************************************************************
changed: [node1]
PLAY RECAP *****************************************************************************
node1 : ok=10 changed=9 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[student@server ansible]$ curl http://node1.example.com/webdev/
Development[student@server ansible]$