运维自动化之ansible playbook安装apache

简介:

上次介绍了如何使用ansible安装lnmp(地址是http://dl528888.blog.51cto.com/2382721/1440775),现在介绍如何使用ansible安装apache。

下面是安装apache的信息:

1
2
3
4
5
6
7
8
9
10
apr_version: 1.5.0
apr_util_version: 1.5.3
libiconv_version: 1.14
apache_version: 2.4.7
apache_web_dir:  /data/webroot/apache
apache_log:  /data/webroot/apache/logs
apache_vhost:  /data/webroot/apache/vhost
apache_port: 80
apache_user: www
serveradmin: denglei@chukong-inc.com

可以看到apache的版本是2.4.7

备注:此playbook仅能对centos或者redhat的6.x版本进行安装。

下面是安装apache的playbook结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
apache_delete
├── files
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── delete.yml
│   └── main.yml
├── templates
└── vars
     └── main.yml
apache_install
├── files
│   ├── httpd-2.4.7. tar .gz
│   └── libiconv. tar .gz
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── copy.yml
│   ├── delete.yml
│   ├──  install .yml
│   └── main.yml
├── templates
│   ├── httpd
│   ├── httpd.conf
│   ├── index.html
│   ├── index.php
│   └── vhost.conf
└── vars
     └── main.yml
 
12 directories, 17 files

playbook安装apache的是:

1
2
3
4
5
6
7
8
9
09:09:35  # cat apache_install.yml 
---
- hosts:  "`host`"
   remote_user:  "`user`"
   gather_facts: True
   roles:
     - common
     - pcre_install
     - apache_install

playbook删除apache的是:

1
2
3
4
5
6
7
09:09:56  # cat apache_delete.yml 
---
- hosts:  "`host`"
   remote_user:  "`user`"
   gather_facts: True
   roles:
     - apache_delete

1、安装apache

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
09:05:59  # time ansible-playbook apache_install.yml --extra-vars "host=192.168.240.13 user=root" --private-key=/root/test.pem
 
PLAY [192.168.240.13] ********************************************************* 
 
GATHERING FACTS *************************************************************** 
ok: [192.168.240.13]
 
TASK: [common | Install initializtion require software] *********************** 
changed: [192.168.240.13]
 
TASK: [pcre_install | Copy Pcre Software To Redhat Client] ******************** 
changed: [192.168.240.13]
 
TASK: [pcre_install | Uncompression Pcre Software In Redhat Client] *********** 
changed: [192.168.240.13]
 
TASK: [pcre_install | Delete Pcre Software In Redhat Client] ****************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Copy Apache Software To Redhat Client] **************** 
changed: [192.168.240.13] => (item=httpd-2.4.7. tar .gz)
changed: [192.168.240.13] => (item=libiconv. tar .gz)
 
TASK: [apache_install | Create Apache User In Redhat Client] ****************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Uncompression Apache Software To Redhat Client] ******* 
changed: [192.168.240.13]
 
TASK: [apache_install | Copy Apache Config To Redhat Client] ****************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Copy Apache Vhost Config To Redhat Client] ************ 
changed: [192.168.240.13]
 
TASK: [apache_install | Copy Apache Start Service Script  To Redhat Client] *** 
changed: [192.168.240.13]
 
TASK: [apache_install | Create Lib Install Dir] ******************************* 
ok: [192.168.240.13]
 
TASK: [apache_install | Check Apache Iconv In Redhat Client] ****************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Install Apache Iconv In Redhat Client] **************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Check Lib In Config In Redhat Client] ***************** 
failed: [192.168.240.13] => { "changed" true "cmd" "grep -c /usr/local/lib/ /etc/ld.so.conf " "delta" "0:00:00.005372" "end" "2014-07-27 21:07:58.416717" "item" "" "rc" : 1,  "start" "2014-07-27 21:07:58.411345" }
stdout: 0
...ignoring
 
TASK: [apache_install | Install Apache Iconv In Redhat Client] **************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Create Apache Dir] ************************************ 
changed: [192.168.240.13] => (item= /data/webroot/apache )
changed: [192.168.240.13] => (item= /data/webroot/apache/logs )
changed: [192.168.240.13] => (item= /data/webroot/apache/vhost )
 
TASK: [apache_install | Install Check Script In Redhat Client] **************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Create Index Html To Redhat Client] ******************* 
changed: [192.168.240.13]
 
TASK: [apache_install | Start Apache Service In Redhat Client] **************** 
changed: [192.168.240.13]
 
TASK: [apache_install | Add Boot Start Apache Service In Redhat Client] ******* 
changed: [192.168.240.13]
 
TASK: [apache_install | Delete Apache compression Software In Redhat Client] *** 
changed: [192.168.240.13]
 
PLAY RECAP ******************************************************************** 
192.168.240.13             : ok=22   changed=20   unreachable=0    failed=0   
 
 
real    0m47.364s
user    0m3.823s
sys 0m0.402s

可以看到47秒就安装完成(默认的common模块是安装基础的yum依赖库,这个我一般初始化安装完成,所以这个地方没有浪费时间,建议大家也都在系统默认安装完成后,初始化依赖库)

2、安装后测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
[root@ip-10-10-240-20 tmp] # ps -ef|grep httpd
root      8375     1  0 21:08 ?        00:00:00  /usr/local/httpd-2 .4.7 /bin/httpd  -k start
www       8377  8375  0 21:08 ?        00:00:00  /usr/local/httpd-2 .4.7 /bin/httpd  -k start
www       8378  8375  0 21:08 ?        00:00:00  /usr/local/httpd-2 .4.7 /bin/httpd  -k start
www       8379  8375  0 21:08 ?        00:00:00  /usr/local/httpd-2 .4.7 /bin/httpd  -k start
www       8380  8375  0 21:08 ?        00:00:00  /usr/local/httpd-2 .4.7 /bin/httpd  -k start
root      8569  6666  0 21:11 pts /1     00:00:00  grep  httpd
[root@ip-10-10-240-20 tmp] # ll /usr/local/
total 56
drwxr-xr-x.  2 root root 4096 Sep 23  2011 bin
drwxr-xr-x.  2 root root 4096 Sep 23  2011 etc
drwxr-xr-x.  2 root root 4096 Sep 23  2011 games
drwxr-xr-x  15 root root 4096 Jul  1 05:18 httpd-2.4.7
drwxr-xr-x.  2 root root 4096 Sep 23  2011 include
drwxr-xr-x.  2 root root 4096 Jul 27 21:07 lib
drwxr-xr-x.  2 root root 4096 Sep 23  2011 lib64
drwxr-xr-x.  2 root root 4096 Sep 23  2011 libexec
drwxr-xr-x   6 root root 4096 Jun 23 05:38 pcre-8.33
drwxr-xr-x  10 root root 4096 Jul 22 23:33 proftpd-1.3.4d
drwxr-xr-x.  2 root root 4096 Sep 23  2011 sbin
drwxr-xr-x.  5 root root 4096 May 12  2013 share
drwxr-xr-x.  3 root root 4096 May 12  2013 src
drwxr-xr-x   6 root root 4096 Jul 24 05:41 vpsmate
[root@ip-10-10-240-20 tmp] # curl 10.10.240.20
Apache 2.4.7  in  10.10.240.20  is success!
[root@ip-10-10-240-20 tmp] # curl 10.10.240.20/index.php
<!DOCTYPE HTML PUBLIC  "-//IETF//DTD HTML 2.0//EN" >
<html>< head >
<title>503 Service Unavailable< /title >
< /head ><body>
<h1>Service Unavailable< /h1 >
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.< /p >
< /body >< /html >
[root@ip-10-10-240-20 tmp] # curl -I 10.10.240.20
HTTP /1 .1 200 OK
Date: Mon, 28 Jul 2014 01:13:13 GMT
Server: Tengine /1 .5.2
Last-Modified: Mon, 28 Jul 2014 01:08:01 GMT
ETag:  "2a-4ff368df22a0b"
Accept-Ranges: bytes
Content-Length: 42
Content-Type: text /html

如果打开php界面的原因是没有安装php,安装的话都成功了并运行正常。

3、删除apache

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
09:16:38  # time ansible-playbook apache_delete.yml --extra-vars "host=192.168.240.13 user=root" --private-key=/root/test.pem
 
PLAY [192.168.240.13] ********************************************************* 
 
GATHERING FACTS *************************************************************** 
ok: [192.168.240.13]
 
TASK: [apache_delete | Stop Httpd Service In RedHat Client] ******************* 
changed: [192.168.240.13]
 
TASK: [apache_delete | Delete Boot Start In RedHat Client] ******************** 
changed: [192.168.240.13]
 
TASK: [apache_delete | Delete Apache Dir In RedHat Client] ******************** 
changed: [192.168.240.13]
 
TASK: [apache_delete | Delete Apache Service Script In RedHat Client] ********* 
changed: [192.168.240.13]
 
TASK: [apache_delete | Delete Apache User] ************************************ 
changed: [192.168.240.13]
 
PLAY RECAP ******************************************************************** 
192.168.240.13             : ok=6    changed=5    unreachable=0    failed=0   
 
 
real    0m19.803s
user    0m0.665s
sys 0m0.104s

4、删除后测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@ip-10-10-240-20 tmp] # ps -ef|grep http
root     11353  6666  0 21:17 pts /1     00:00:00  grep  http
[root@ip-10-10-240-20 tmp] # ll /usr/local/
total 52
drwxr-xr-x.  2 root root 4096 Sep 23  2011 bin
drwxr-xr-x.  2 root root 4096 Sep 23  2011 etc
drwxr-xr-x.  2 root root 4096 Sep 23  2011 games
drwxr-xr-x.  2 root root 4096 Sep 23  2011 include
drwxr-xr-x.  2 root root 4096 Jul 27 21:16 lib
drwxr-xr-x.  2 root root 4096 Sep 23  2011 lib64
drwxr-xr-x.  2 root root 4096 Sep 23  2011 libexec
drwxr-xr-x   6 root root 4096 Jun 23 05:38 pcre-8.33
drwxr-xr-x  10 root root 4096 Jul 22 23:33 proftpd-1.3.4d
drwxr-xr-x.  2 root root 4096 Sep 23  2011 sbin
drwxr-xr-x.  5 root root 4096 May 12  2013 share
drwxr-xr-x.  3 root root 4096 May 12  2013 src
drwxr-xr-x   6 root root 4096 Jul 24 05:41 vpsmate
[root@ip-10-10-240-20 tmp] # id www
id : www: No such user
[root@ip-10-10-240-20 tmp] # curl 10.10.240.20 -I
curl: (7) couldn't connect to host

如果大家想使用我的例子,可以从github里下载(地址是https://github.com/dl528888/ansible-examples/tree/master/apache_install),然后放到/etc/ansible目录里,下面是内容

wKioL1PVpyOw564mAAHOHpD4Kps785.jpg如果觉得好,给个赞并多评论,谢谢。






 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1531104,如需转载请自行联系原作者


相关文章
|
6天前
|
安全 Java 测试技术
Windows电脑安装Apache JMeter的详细教程
本文介绍了在Windows上安装Apache JMeter的步骤。首先,需确保安装Java JDK并配置环境变量。然后,从JMeter官网下载ZIP文件,解压至指定目录,并同样配置JMeter的环境变量。验证安装成功后,可通过命令行以GUI或非GUI模式启动JMeter,进行性能测试。
18 0
|
18天前
|
运维 监控 Docker
构建高效微服务架构:从理论到实践构建高效自动化运维体系:Ansible与Docker的完美融合
【5月更文挑战第31天】 在当今软件开发的世界中,微服务架构已经成为了实现可伸缩、灵活且容错的系统的关键策略。本文将深入探讨如何从零开始构建一个高效的微服务系统,涵盖从概念理解、设计原则到具体实施步骤。我们将重点讨论微服务设计的最佳实践、常用的技术栈选择、以及如何克服常见的挑战,包括服务划分、数据一致性、服务发现和网络通信等。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们构建出既健壮又易于维护的微服务系统。
|
14天前
|
Apache Windows
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
|
14天前
|
Apache Windows
apache2 安装时报错 ServerRoot must be a valid directory
apache2 安装时报错 ServerRoot must be a valid directory
|
14天前
|
Apache Windows
windows源码安装apache2 win安装apache 阿帕奇服务器
windows源码安装apache2 win安装apache 阿帕奇服务器
|
18天前
|
关系型数据库 MySQL 网络安全
ansible 深入介绍之 主机清单与playbook
ansible 深入介绍之 主机清单与playbook
|
18天前
|
运维 关系型数据库 Shell
运维自动化之 ansible
运维自动化之 ansible
|
19天前
|
运维 Devops 测试技术
构建高效自动化运维体系:基于Ansible的实践指南
【5月更文挑战第30天】 在当今IT基础设施管理领域,自动化已成为提高效率、确保一致性和减少人为错误的关键。本文将探讨如何利用Ansible这一强大的自动化工具来构建一个高效的运维自动化体系。文章不仅介绍了Ansible的基本原理和组件,还通过实际案例展示了如何集成Ansible到现有的运维流程中,以及如何处理常见的自动化挑战。读者将获得一套实用的策略和最佳实践,以优化其自动化运维工作。
|
21天前
|
运维 监控 安全
构建高效自动化运维体系:Ansible与Docker的完美结合
【5月更文挑战第28天】 在当今快速演变的IT环境中,自动化已成为维护系统稳定性与提高效率的关键。本文将探讨如何通过结合Ansible和Docker技术构建一个高效的自动化运维体系。文章不仅介绍两者的基本概念,还详细阐述了集成实践,以及通过真实案例分析其优势和潜在挑战,旨在为读者提供一套可行的解决方案,以优化他们的DevOps流程。
|
21天前
|
运维 监控 安全
构建高效自动化运维体系:Ansible与Docker的完美融合
【5月更文挑战第28天】 在现代IT基础设施管理中,自动化运维已成为提升效率、确保一致性和降低人为错误的关键手段。本文深入探讨了如何利用Ansible这一强大的自动化工具与容器化技术的代表Docker相结合,以打造一个灵活且高效的自动化运维体系。通过分析Ansible的模块化设计、丰富的插件系统以及与Docker的无缝集成,本文旨在为读者提供一个清晰、可行的自动化运维解决方案,同时强调安全性和可扩展性的重要性。

热门文章

最新文章