下载httpd及依赖包的压缩包
httpd安装包地址: https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/
.
apr安装包地址: https://mirrors.tuna.tsinghua.edu.cn/apache/apr/
//下载至/opt/packages,这个目录专门用来存储apache压缩包
[root@ansible packages]# ls
apr-1.6.5.tar.gz apr-util-1.6.1.tar.bz2 httpd-2.4.38.tar.bz2
编写httpd依赖包的yml文件
先在/opt/下创建一个变量的目录,将编译安装httpd需要用到的变量定义,方便后面引用
[root@ansible vars]# cat httpd.yml
packages: //定义包的变量,为下列内容
- openssl-devel
- pcre-devel
- expat-devel
- libtool
- gcc
- gcc-c++
- make
- pcre
- perl-devel
- perl
- '@ Development Tools'
user: apache //定义user用户的变量为apache
编写 编译安装用的配置文件
---
- hosts: apache //指定主机为apache
vars_files: //指定变量配置文件
- vars/httpd.yml //路径
tasks:
- name: create name
user:
name: '{{user}}' //创建apache用户,无家目录
system: yes
create_home: no
shell: /sbin/nologin
state: present
- name: install base packages //安装变量所指的依赖包
yum:
name: '{{item}}'
state: present
loop: '{{packages}}'
- name: uncompress apr //传输三个压缩包到/opt/下并解压
unarchive:
src: packages/apr-1.7.0.tar.gz
dest: /opt/
- name: uncompress apr-util
unarchive:
src: packages/apr-util-1.6.1.tar.gz
dest: /opt/
- name: uncompress httpd
unarchive:
src: packages/httpd-2.4.48.tar.gz
dest: /opt/
- name: configure //更改配置文件
lineinfile:
path: /opt/apr-1.7.0/configure
regexp: '^$RM "$cfgfile"'
line: '# $RM "$cfgfile"'
- name: install apr //编译安装
shell: cd /opt/apr-1.7.0 && ./configure --prefix=/usr/local/apr && make && make install
- name: install apr-util
shell: cd /opt/apr-util-1.6.1 && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
- name: install httpd
shell: cd /opt/httpd-2.4.48 && ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ && make && make install
执行
[root@ansible opt]# ansible-playbook install.yml
PLAY [apache] ***********************************************************************************
TASK [Gathering Facts] **************************************************************************
ok: [192.168.75.150]
TASK [create name] ******************************************************************************
changed: [192.168.75.150]
TASK [install base packages] ********************************************************************
ok: [192.168.75.150] => (item=openssl-devel)
ok: [192.168.75.150] => (item=pcre-devel)
ok: [192.168.75.150] => (item=expat-devel)
ok: [192.168.75.150] => (item=libtool)
ok: [192.168.75.150] => (item=gcc)
ok: [192.168.75.150] => (item=gcc-c++)
ok: [192.168.75.150] => (item=make)
ok: [192.168.75.150] => (item=pcre)
changed: [192.168.75.150] => (item=perl-devel)
changed: [192.168.75.150] => (item=perl)
ok: [192.168.75.150] => (item=@ Development Tools)
TASK [uncompress apr] ***************************************************************************
changed: [192.168.75.150]
TASK [uncompress apr-util] **********************************************************************
changed: [192.168.75.150]
TASK [uncompress httpd] *************************************************************************
changed: [192.168.75.150]
TASK [configure] ********************************************************************************
changed: [192.168.75.150]
TASK [install apr] ******************************************************************************
changed: [192.168.75.150]
TASK [install apr-util] *************************************************************************
changed: [192.168.75.150]
TASK [install httpd] ****************************************************************************
changed: [192.168.75.150]
PLAY RECAP **************************************************************************************
192.168.75.150 : ok=10 changed=9 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
访问