playbook源码部署apache
一、准备工作
服务 | 地址 |
---|---|
ansible | 192.168.142.100 |
apache | 192.168.142.98 |
二、工作思路
- 创建目录与文件后下载源码包
- 编辑变量环境
- 编写源码安装apache文件
- 连接
- 执行
- 提供测试页
三、过程
创建目录和文件
[root@ansible playbook]# mkdir -p host_vars
[root@ansible playbook]# touch host_vars/httpd.yml apache.yml
[root@ansible playbook]# tree
.
├── apache.yml
├── host_vars
│ └── httpd.yml
├── lamp.yml
└── web.yml
3 directories, 2 files
下载源码安装
[root@ansible playbook]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.7.0.tar.gz
--2021-07-22 22:18:33-- https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.7.0.tar.gz
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1093896 (1.0M) [application/octet-stream]
正在保存至: “apr-1.7.0.tar.gz”
apr-1.7.0.tar.gz 100%[==========>] 1.04M 479KB/s 用时 2.2s
2021-07-22 22:18:36 (479 KB/s) - 已保存 “apr-1.7.0.tar.gz” [1093896/1093896])
[root@ansible playbook]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.48.tar.gz
--2021-07-22 22:18:56-- https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.48.tar.gz
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9418226 (9.0M) [application/octet-stream]
正在保存至: “httpd-2.4.48.tar.gz”
httpd-2.4.48.tar. 100%[==========>] 8.98M 2.44MB/s 用时 4.0s
2021-07-22 22:19:00 (2.26 MB/s) - 已保存 “httpd-2.4.48.tar.gz” [9418226/9418226])
[root@ansible playbook]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
--2021-07-22 22:19:07-- https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:554301 (541K) [application/octet-stream]
正在保存至: “apr-util-1.6.1.tar.gz”
apr-util-1.6.1.ta 100%[==========>] 541.31K 2.70MB/s 用时 0.2s
2021-07-22 22:19:08 (2.70 MB/s) - 已保存 “apr-util-1.6.1.tar.gz” [554301/554301])
编写httpd.yml主机变量文件
[root@ansible playbook]# cat host_vars/httpd.yml
---
tools: gcc,gcc-c++,perl,perl-devel,expat-devel,pcre-devel,pcre
apr_install: " cd /root/apr-1.7.0/ && ./configure --prefix=/usr/local/apr && make && make install "
apr_util_install: " cd /root/apr-util-1.6.1/ && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install "
httpd_install: " cd /root/httpd-2.4.48/ && ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util && make && make install "
编写源码安装apache.yml文件
[root@ansible playbook]# vim apache.yml
[root@ansible playbook]# cat apache.yml
---
- hosts: apache
vars_files:
- /etc/ansible/playbook/host_vars/httpd.yml
tasks:
- name: install tools
yum:
name: "{{ tools }}"
state: present
- name: cp apr
unarchive:
src: /etc/ansible/playbook/apr-1.7.0.tar.gz
dest: /root/
copy: yes
- name: cp apr-util
unarchive:
src: /etc/ansible/playbook/apr-util-1.6.1.tar.gz
dest: /root/
copy: yes
- name: cp httpd
unarchive:
src: /etc/ansible/playbook/httpd-2.4.48.tar.gz
dest: /root/
copy: yes
- name: create user
user:
name: apache
state: present
- name: create group
group:
name: apache
system: yes
state: present
- name: install apr
shell: "{{ apr_install }}"
- name: install apr-util
shell: "{{ apr_util_install }}"
- name: install httpd
shell: "{{ httpd_install }}"
- name: start httpd service
shell: " /usr/local/httpd/bin/apachectl start "
运行
[root@ansible playbook]# ansible-playbook apache.yml
PLAY [apache] *******************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************
ok: [192.168.230.98]
TASK [install tools] ************************************************************************************************************************************************
ok: [192.168.230.98]
TASK [cp apr] *******************************************************************************************************************************************************
ok: [192.168.230.98]
TASK [cp apr-util] **************************************************************************************************************************************************
ok: [192.168.230.98]
TASK [cp httpd] *****************************************************************************************************************************************************
ok: [192.168.230.98]
TASK [create user] **************************************************************************************************************************************************
ok: [192.168.230.98]
TASK [create group] *************************************************************************************************************************************************
ok: [192.168.230.98]
TASK [install apr] **************************************************************************************************************************************************
changed: [192.168.230.98]
TASK [install apr-util] *********************************************************************************************************************************************
changed: [192.168.230.98]
TASK [install httpd] ************************************************************************************************************************************************
changed: [192.168.230.98]
TASK [start httpd service] ******************************************************************************************************************************************
changed: [192.168.230.98]
PLAY RECAP **********************************************************************************************************************************************************
192.168.230.98 : ok=11 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
设置网站内容
[root@apache ~]# cat /usr/local/httpd/htdocs/index.html
<html><body><h1>Want to drink milk tea!</h1></body></html>
进行测试