运维自动化之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,如需转载请自行联系原作者


相关文章
|
1天前
|
运维 安全 应用服务中间件
自动化运维的利器:Ansible入门与实战网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【8月更文挑战第30天】在当今快速发展的IT时代,自动化运维已成为提升效率、减少错误的关键。本文将介绍Ansible,一种流行的自动化运维工具,通过简单易懂的语言和实际案例,带领读者从零开始掌握Ansible的使用。我们将一起探索如何利用Ansible简化日常的运维任务,实现快速部署和管理服务器,以及如何处理常见问题。无论你是运维新手还是希望提高工作效率的资深人士,这篇文章都将为你开启自动化运维的新篇章。
|
2天前
|
运维 Ubuntu 应用服务中间件
自动化运维:使用Ansible管理服务器
【8月更文挑战第29天】在当今快速发展的IT领域,自动化运维已成为提升效率和减少人为错误的关键技术。本文将引导你了解如何使用Ansible这一强大的自动化工具来简化服务器管理任务。从基础的安装、配置到高级的应用部署与维护,我们将一步步揭示Ansible如何让你轻松掌控多台服务器,确保系统稳定运行。文章末尾,你还将找到实用的代码示例,助你立刻上手实践。
|
2天前
|
运维 Ubuntu 应用服务中间件
自动化运维的利器:Ansible入门与实践
【8月更文挑战第29天】本文旨在为读者提供一份简明扼要的Ansible入门指南,通过通俗易懂的语言和实际案例,引导读者了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook。文章不仅涵盖了Ansible的基础使用,还探讨了其在自动化运维中的关键作用,鼓励读者思考如何将Ansible应用到日常工作中,以提升效率和减少人为错误。
|
1天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:Ansible在现代IT架构中的应用与实践
【8月更文挑战第30天】随着信息技术的飞速发展,企业对运维效率和可靠性的要求日益增高。传统的手动运维方式已难以应对复杂多变的IT环境,自动化运维因此成为行业新宠。本文将深入探讨Ansible这一流行的自动化工具,如何通过其简洁的配置管理和强大的多节点部署能力,助力现代IT架构实现高效、可靠的运维管理。我们将从Ansible的核心概念入手,逐步解析其在配置管理、任务执行、应用部署等方面的实战应用,并结合代码示例,展示如何利用Ansible简化日常运维工作,提升运维质量和效率。无论你是运维新手还是资深专家,这篇文章都将为你提供宝贵的洞见和实操技巧。
|
2天前
|
运维 网络安全
自动化运维:使用Ansible管理服务器
【8月更文挑战第29天】在这篇文章中,我们将探讨如何使用Ansible进行自动化运维。Ansible是一款开源的IT自动化工具,可以用于配置管理、应用部署和任务自动化等。我们将通过实际的代码示例,展示如何利用Ansible来简化日常的运维任务,提高工作效率。无论你是新手还是有经验的运维人员,这篇文章都将为你提供有价值的信息和技巧。
|
3天前
|
运维 应用服务中间件 网络安全
自动化运维的利器:Ansible在服务器管理中的应用
【8月更文挑战第28天】本文深入探讨了Ansible在简化和自动化服务器管理工作中的强大功能及其实际应用。通过浅显易懂的语言和具体示例,展示了如何利用Ansible进行批量配置、部署应用以及执行系统管理任务,旨在为读者提供一套完整的解决方案,以便更好地理解和应用Ansible,从而提高工作效率和减轻运维负担。
|
3天前
|
运维 Kubernetes Devops
自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第28天】在信息技术迅猛发展的今天,自动化运维已成为企业提升效率、确保服务质量的关键。本文将带你领略自动化运维的发展脉络,从最初的脚本编写到现代的DevOps实践,揭示这一领域如何不断进化以适应新的技术挑战。你将看到,通过采纳DevOps文化和工具,团队如何打破壁垒,实现更高效的协作与交付,从而为企业带来持续的创新和价值。
|
1天前
|
运维 监控 应用服务中间件
自动化运维:打造高效、稳定的系统环境
【8月更文挑战第30天】本文将探讨如何通过自动化运维技术,提升系统的稳定性和效率。我们将从基础概念出发,逐步深入到实践应用,分享一些实用的工具和技术,以及如何将这些工具和技术融入到日常的运维工作中。无论你是运维新手,还是有一定经验的老手,都能在这篇文章中找到有价值的信息。让我们一起探索自动化运维的世界,提升我们的工作效率,让系统运行得更加平稳。
|
1天前
|
数据采集 运维 Devops
探索Python编程之美:从基础到进阶自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第30天】在数字化时代的浪潮中,编程已经成为一门重要的技能。Python以其简洁明了的语法和强大的功能,成为了许多初学者的首选编程语言。本文将通过浅显易懂的语言,带领读者从Python的基础语法出发,逐步深入到面向对象编程、网络爬虫开发以及数据分析等高级应用,旨在帮助初学者构建扎实的编程基础,并激发他们进一步探索编程世界的热情。文章不仅分享实用的编程技巧,还将探讨如何将编程知识应用于解决实际问题,以期培养读者的问题解决能力和创新思维。
|
1天前
|
运维 监控 调度
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第30天】本文通过介绍如何使用Python脚本来简化和自动化日常的运维任务,旨在帮助读者提升工作效率。文章将重点介绍如何使用Python的基本库以及如何创建简单的脚本来处理文件、监控服务器状态和自动化备份过程。我们将从基础开始,逐步深入到更复杂的应用场景,使读者能够根据实际需要编写自己的自动化脚本。

推荐镜像

更多
下一篇
云函数