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


相关文章
|
8月前
|
运维 应用服务中间件 Linux
自动化运维的利器:Ansible在配置管理中的应用
【10月更文挑战第39天】本文旨在通过深入浅出的方式,向读者展示如何利用Ansible这一强大的自动化工具来优化日常的运维工作。我们将从基础概念讲起,逐步深入到实战操作,不仅涵盖Ansible的核心功能,还会分享一些高级技巧和最佳实践。无论你是初学者还是有经验的运维人员,这篇文章都会为你提供有价值的信息,帮助你提升工作效率。
|
6月前
|
弹性计算 Ubuntu Linux
阿里云系统运维管理OOS一键安装宝塔面板,这个功能太牛了!
宝塔面板是实用的服务器管理工具,支持多种操作系统(如Ubuntu、CentOS等)。通过阿里云OOS可一键安装。安装前提包括ECS实例运行中且有公网,安全组需开放8888端口。安装步骤简单,进入ECS控制台选择预装应用并确认下单,完成后在控制台查看详情和登录信息。最后验证安装结果,确保能成功访问宝塔面板URL。
355 82
|
6月前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
542 79
|
7月前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
139 11
|
7月前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
8月前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
7月前
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
8月前
|
运维 安全 Ubuntu
自动化运维:使用Ansible进行服务器配置管理
在现代IT基础设施中,自动化运维是确保高效、稳定和安全服务的关键。本文将深入介绍如何使用Ansible这一开源工具来简化服务器配置管理工作,从基础安装到高级应用,我们将一步步展示如何通过Ansible Playbooks实现自动化部署和维护,旨在帮助读者构建更加灵活和可扩展的运维体系。
150 7
|
8月前
|
运维 Ubuntu Linux
自动化运维:使用Ansible简化日常任务
在快节奏的IT世界中,时间就是一切。本文将揭示如何通过Ansible这一强大的自动化工具来节省宝贵的时间,从而提高效率和减少人为错误。我们将深入探讨Ansible的核心概念、安装过程以及如何编写简单的playbook来自动执行常见运维任务。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供实用的知识和技能,让你能够更好地控制你的服务器环境。
|
8月前
|
运维 Devops 应用服务中间件
自动化运维的利剑:Ansible在现代IT架构中的应用
【10月更文挑战第42天】本文旨在揭示自动化运维工具Ansible如何革新现代IT架构,通过简化配置管理和部署流程,提升效率和可靠性。我们将探索Ansible的核心功能、语言特性以及其在DevOps文化中的角色。文章还将展示如何借助Ansible构建模块化和可重用的配置代码,实现快速迭代与部署,并确保系统一致性。通过阅读本文,运维人员将了解如何利用Ansible优化日常任务,加速产品上线速度,同时提高系统的稳健性。
137 5

热门文章

最新文章

推荐镜像

更多