运维自动化之ansible playbook安装nginx

简介:

上次介绍了如何使用ansible playbook安装mysql(http://dl528888.blog.51cto.com/2382721/1437882),这次介绍一下如何使用playbook安装nginx。

下面是安装nginx的信息:

1
2
3
4
5
6
7
nginx_user: www                        nginx用户
nginx_port: 80                         nginx监听端口
nginx_web_dir:  /data/webroot/nginx      nginx的目录
nginx_version: 1.4.3                   nginx的版本
pcre_version: 8.33                     pcre的版本
pretended_name: Tengine                为了安全起见,把nginx名字改为tengine
pretended_version: 1.5.2               隐藏版本,换个tengine的版本

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

下面是安装nginx的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
34
09:33:15  # tree  nginx_*
nginx_delete
├── files
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── delete.yml
│   └── main.yml
├── templates
└── vars
     └── main.yml
nginx_install
├── files
│   └── nginx-1.4.3. tar .gz
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── copy.yml
│   ├── delete.yml
│   ├──  install .yml
│   └── main.yml
├── templates
│   ├── index.html
│   ├── index.php
│   ├── install_nginx.sh
│   ├── nginx
│   ├── nginx.conf
│   └── vhost.conf
└── vars
     └── main.yml
 
12 directories, 17 files

playbook的nginx安装是

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

playbook的nginx删除为

1
2
3
4
5
6
7
8
09:35:06  # cat nginx_delete.yml 
---
- hosts:  "`host`"
   remote_user:  "`user`"
   gather_facts: True
   roles:
     - nginx_delete
     - pcre_delete

1、安装nginx

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
09:26:58  # time ansible-playbook nginx_install.yml --extra-vars "host=192.168.240.17 user=root" --private-key=/root/test.pem 
 
PLAY [192.168.240.17] ********************************************************* 
 
GATHERING FACTS *************************************************************** 
ok: [192.168.240.17]
 
TASK: [common | Install initializtion require software] *********************** 
changed: [192.168.240.17]
 
TASK: [pcre_install | Copy Pcre Software To Redhat Client] ******************** 
changed: [192.168.240.17]
 
TASK: [pcre_install | Uncompression Pcre Software In Redhat Client] *********** 
changed: [192.168.240.17]
 
TASK: [pcre_install | Delete Pcre Software In Redhat Client] ****************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Copy Nginx Software To Redhat Client] ****************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Uncompression Nginx Software To Redhat Client] ********* 
changed: [192.168.240.17]
 
TASK: [nginx_install | Copy Nginx Start Script To Redhat Client] ************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Copy Nginx Config To Redhat Client] ******************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Copy Nginx Vhost Config to RedHat Client] ************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Create Nginx User In Redhat Client] ******************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Create Nginx  Dir] ************************************* 
changed: [192.168.240.17] => (item=vhost)
changed: [192.168.240.17] => (item=logs)
 
TASK: [nginx_install | Modify Nginx Dir Permission In Redhat Client] ********** 
changed: [192.168.240.17] => (item= /data/webroot/nginx )
changed: [192.168.240.17] => (item= /usr/local/nginx-1 .4.3)
 
TASK: [nginx_install | Create Index Html To Redhat Client] ******************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Install Check Script In Redhat Client] ***************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Start Nginx Service In Redhat Client] ****************** 
changed: [192.168.240.17]
 
TASK: [nginx_install | Add Boot Start Nginx Service In Redhat Client] ********* 
changed: [192.168.240.17]
 
TASK: [nginx_install | Delete Nginx compression Software In Redhat Client] **** 
changed: [192.168.240.17]
 
PLAY RECAP ******************************************************************** 
192.168.240.17             : ok=18   changed=17   unreachable=0    failed=0   
 
 
real    0m53.357s
user    0m2.433s
sys 0m0.341s

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
[root@ip-10-10-240-21  local ] # ps -ef|grep nginx
root     27791     1  0 21:27 ?        00:00:00 nginx: master process  /usr/local/nginx-1 .4.3 /sbin/nginx  -c  /usr/local/nginx-1 .4.3 /conf/nginx .conf
www      27792 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
www      27794 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
www      27795 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
www      27796 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
www      27797 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
www      27798 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
www      27799 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
www      27800 27791  0 21:27 ?        00:00:00 nginx: worker process                                                      
root     27905 26349  0 21:28 pts /0     00:00:00  grep  nginx
[root@ip-10-10-240-21  local ] # chkconfig --list|grep nginx
nginx             0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@ip-10-10-240-21  local ] # /etc/init.d/nginx status
Usage:  /etc/init .d /nginx  {start|restart|reload|stop| test |show}
[root@ip-10-10-240-21  local ] # curl 10.10.240.21
Nginx 1.4.3  in  10.10.240.21  is success!
[root@ip-10-10-240-21  local ] # curl -I 10.10.240.21
HTTP /1 .1 200 OK
Server: Tengine /1 .5.2
Date: Wed, 16 Jul 2014 01:35:59 GMT
Content-Type: text /html
Content-Length: 41
Last-Modified: Wed, 16 Jul 2014 01:27:57 GMT
Connection: keep-alive
ETag:  "53c5d51d-29"
Accept-Ranges: bytes

可与看到安装成功,并且软件名与版本都隐藏了

3、删除nginx

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
09:28:02  # time ansible-playbook nginx_delete.yml --extra-vars "host=192.168.240.17 user=root" --private-key=/root/test.pem 
 
PLAY [192.168.240.17] ********************************************************* 
 
GATHERING FACTS *************************************************************** 
ok: [192.168.240.17]
 
TASK: [nginx_delete | stop nginx service] ************************************* 
changed: [192.168.240.17]
 
TASK: [nginx_delete | Delete Nginx Boot Start Script] ************************* 
changed: [192.168.240.17]
 
TASK: [nginx_delete | Delete Nginx Dir] *************************************** 
changed: [192.168.240.17]
 
TASK: [nginx_delete | Delete Nginx User] ************************************** 
changed: [192.168.240.17]
 
TASK: [nginx_delete | Delete Nginx Service Start Script] ********************** 
changed: [192.168.240.17]
 
TASK: [pcre_delete | Delete Pcre] ********************************************* 
changed: [192.168.240.17]
 
PLAY RECAP ******************************************************************** 
192.168.240.17             : ok=7    changed=6    unreachable=0    failed=0   
 
 
real    0m30.222s
user    0m0.774s
sys 0m0.126s

4、删除后测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@ip-10-10-240-21  local ] # ps -ef|grep nginx
root     28417 26349  0 21:37 pts /0     00:00:00  grep  nginx
[root@ip-10-10-240-21  local ] # chkconfig --list|grep nginx
[root@ip-10-10-240-21  local ] # ll /etc/init.d/nginx
ls : cannot access  /etc/init .d /nginx : No such  file  or directory
[root@ip-10-10-240-21  local ] # ll /usr/local/
total 44
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 10 22:43 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. 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  5 zabbix zabbix 4096 Jul  8 02:17 zabbix

可与看到都删除了。

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

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
09:39:13  # unzip -v  nginx_install.zip 
Archive:  nginx_install.zip
  Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
      132  Defl:N       95  28% 07-16-2014 09:34 d75c7ef9  nginx_install.yml
      117  Defl:N       89  24% 07-16-2014 09:35 27eb35d2  nginx_delete.yml
        0  Stored        0   0% 07-03-2014 17:29 00000000  roles /common/
        0  Stored        0   0% 06-30-2014 15:58 00000000  roles /common/meta/
      267  Defl:N      178  33% 07-16-2014 09:25 31ee20ec  roles /common/meta/main .yml
        0  Stored        0   0% 07-14-2014 13:40 00000000  roles /common/tasks/
      586  Defl:N      268  54% 07-16-2014 09:25 1c0af2a1  roles /common/tasks/main .yml
        0  Stored        0   0% 06-19-2014 13:43 00000000  roles /common/handlers/
       58  Defl:N       48  17% 07-16-2014 09:25 8d058053  roles /common/handlers/main .yml
        0  Stored        0   0% 06-19-2014 13:30 00000000  roles /common/vars/
        0  Stored        0   0% 06-19-2014 13:30 00000000  roles /common/templates/
        0  Stored        0   0% 06-19-2014 13:30 00000000  roles /common/files/
        0  Stored        0   0% 06-24-2014 11:27 00000000  roles /nginx_install/
        0  Stored        0   0% 07-08-2014 14:12 00000000  roles /nginx_install/meta/
      198  Defl:N      149  25% 07-16-2014 09:25 e527ea95  roles /nginx_install/meta/main .yml
        0  Stored        0   0% 07-03-2014 17:46 00000000  roles /nginx_install/tasks/
      198  Defl:N      153  23% 07-16-2014 09:25 eb70a996  roles /nginx_install/tasks/delete .yml
       65  Defl:N       41  37% 07-16-2014 09:25 a3197ca7  roles /nginx_install/tasks/main .yml
     1142  Defl:N      300  74% 07-16-2014 09:25 34ddc722  roles /nginx_install/tasks/copy .yml
     1574  Defl:N      431  73% 07-16-2014 09:25 13c2a951  roles /nginx_install/tasks/install .yml
        0  Stored        0   0% 06-19-2014 13:30 00000000  roles /nginx_install/handlers/
        0  Stored        0   0% 06-24-2014 10:38 00000000  roles /nginx_install/vars/
      155  Defl:N      105  32% 07-16-2014 09:25 70e58924  roles /nginx_install/vars/main .yml
        0  Stored        0   0% 07-16-2014 09:25 00000000  roles /nginx_install/templates/
      738  Defl:N      337  54% 07-16-2014 09:25 bd02415e  roles /nginx_install/templates/vhost .conf
      784  Defl:N      346  56% 06-24-2014 11:37 6d09dba5  roles /nginx_install/templates/install_nginx .sh
     1642  Defl:N      698  58% 07-16-2014 09:25 60b4ed9a  roles /nginx_install/templates/nginx .conf
      196  Defl:N      147  25% 07-16-2014 09:25 fa0f7181  roles /nginx_install/templates/index .php
       77  Defl:N       71   8% 07-16-2014 09:25 1fdd8439  roles /nginx_install/templates/index .html
      926  Defl:N      459  50% 07-16-2014 09:25 4aa2e8fa  roles /nginx_install/templates/nginx
        0  Stored        0   0% 07-03-2014 14:24 00000000  roles /nginx_install/files/
  2346820  Defl:N  2283881   3% 07-16-2014 09:25 8a501ba6  roles /nginx_install/files/nginx-1 .4.3. tar .gz
        0  Stored        0   0% 06-23-2014 14:03 00000000  roles /nginx_delete/
        0  Stored        0   0% 07-08-2014 14:12 00000000  roles /nginx_delete/meta/
      197  Defl:N      147  25% 07-16-2014 09:25 ab72e486  roles /nginx_delete/meta/main .yml
        0  Stored        0   0% 07-01-2014 17:05 00000000  roles /nginx_delete/tasks/
      893  Defl:N      289  68% 07-16-2014 09:25 68681d99  roles /nginx_delete/tasks/delete .yml
       22  Stored       22   0% 07-16-2014 09:25 728ce4aa  roles /nginx_delete/tasks/main .yml
        0  Stored        0   0% 06-24-2014 14:14 00000000  roles /nginx_delete/handlers/
        0  Stored        0   0% 06-24-2014 12:48 00000000  roles /nginx_delete/vars/
      155  Defl:N      105  32% 07-16-2014 09:25 70e58924  roles /nginx_delete/vars/main .yml
        0  Stored        0   0% 06-19-2014 17:32 00000000  roles /nginx_delete/templates/
        0  Stored        0   0% 06-24-2014 13:53 00000000  roles /nginx_delete/files/
--------          -------  ---                            -------
  2356942          2288359   3%                            43 files

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





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


相关文章
|
1天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible实战应用
【9月更文挑战第33天】本文将带你深入理解Ansible,一个强大的自动化运维工具。我们将从基础概念开始,逐步探索其配置管理、任务调度等功能,并通过实际案例演示其在自动化部署和批量操作中的应用。文章旨在通过浅显易懂的语言和实例,为读者揭开Ansible的神秘面纱,展示其在简化运维工作中的强大能力。
93 64
|
6天前
|
运维 持续交付 开发工具
自动化运维工具:Ansible入门教程
【8月更文挑战第60天】在现代IT运维管理中,自动化工具的使用已成为提高生产效率、减少人为错误和确保环境一致性的重要手段。本文将介绍Ansible——一款流行的开源自动化运维工具,通过其简单易学的语法和强大的功能,帮助读者快速入门并实现自动化部署和管理。我们将从Ansible的基本概念讲起,逐步深入到实际的代码示例,展示如何利用Ansible简化日常的运维任务。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供实用的知识和技巧,让你轻松驾驭Ansible,开启自动化运维之旅。
|
5天前
|
存储 运维 Ubuntu
自动化运维:使用Ansible管理服务器
【8月更文挑战第61天】本文将介绍如何使用Ansible工具进行服务器的自动化管理。我们将从基础概念开始,逐步深入到实际的应用案例,最后通过代码示例展示如何实现自动化部署和配置管理。无论你是初学者还是有经验的运维工程师,这篇文章都会为你提供有价值的参考。
|
6天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible入门与实践
【9月更文挑战第28天】在追求高效、稳定的IT运维时代,自动化工具Ansible凭借其简洁性、易用性和强大的功能脱颖而出。本文旨在通过实际案例引导读者理解Ansible的核心概念和操作流程,并分享如何通过Ansible简化日常运维任务,提升工作效率。从基础安装到高级应用,我们将一步步揭开Ansible的神秘面纱,让初学者也能轻松掌握自动化运维的要诀。
|
29天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
67 36
|
5天前
|
机器学习/深度学习 运维 Cloud Native
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为信息技术的重要支柱,其效率与创新能力直接关系到企业信息系统的稳定性和业务连续性。本文将探讨如何通过技术手段,实现运维从传统手工操作向自动化、智能化的转变,进而构建一个高效、可靠的运维体系。我们将从自动化工具的应用开始,逐步深入到智能运维的实践,最终展望云原生架构下的运维未来趋势。
|
9天前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为保障企业IT系统稳定运行的关键环节,正经历着前所未有的变革。本文将探讨如何通过实施自动化和引入智能化技术,构建一个更加高效、可靠的运维体系,以应对日益复杂的业务需求和技术挑战。
21 1
|
26天前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
19天前
|
机器学习/深度学习 运维 安全
构建高效运维体系:从自动化到智能化的演进之路
在数字化转型的浪潮中,运维管理作为信息技术基础设施的重要支柱,正经历着从传统手工操作向自动化、智能化的深刻变革。本文将探讨如何通过引入自动化工具和平台,实现运维流程的标准化与效率提升;进而利用大数据分析和人工智能技术,迈向预测性维护和智能决策支持的高级阶段。通过案例分析,揭示成功转型的关键因素,为运维专业人士提供一套可借鉴的升级路径。
|
17天前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进之旅
在当今数字化时代,运维作为信息技术领域的核心组成部分,其重要性日益凸显。随着企业业务的不断扩展和技术的日新月异,传统手工运维方式已难以满足现代IT架构的需求。因此,构建一个高效、智能的运维体系成为业界共识。本文将探讨如何通过自动化和智能化手段,实现运维效率的质的飞跃,并分享一些成功案例与实践经验。
下一篇
无影云桌面