786yr 发表于 2014-7-22 09:58:53

运维自动化之ansible playbook安装nginx

绍一下如何使用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 # treenginx_*
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 *********************************************************

GATHERING FACTS ***************************************************************
ok:

TASK: ***********************
changed:

TASK: ********************
changed:

TASK: ***********
changed:

TASK: ******************
changed:

TASK: ******************
changed:

TASK: *********
changed:

TASK: **************
changed:

TASK: ********************
changed:

TASK: **************
changed:

TASK: ********************
changed:

TASK: *************************************
changed: => (item=vhost)
changed: => (item=logs)

TASK: **********
changed: => (item=/data/webroot/nginx)
changed: => (item=/usr/local/nginx-1.4.3)

TASK: ********************
changed:

TASK: *****************
changed:

TASK: ******************
changed:

TASK: *********
changed:

TASK: ****
changed:

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
# ps -ef|grep nginx
root   27791   10 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 277910 21:27 ?      00:00:00 nginx: worker process                                                      
www      27794 277910 21:27 ?      00:00:00 nginx: worker process                                                      
www      27795 277910 21:27 ?      00:00:00 nginx: worker process                                                      
www      27796 277910 21:27 ?      00:00:00 nginx: worker process                                                      
www      27797 277910 21:27 ?      00:00:00 nginx: worker process                                                      
www      27798 277910 21:27 ?      00:00:00 nginx: worker process                                                      
www      27799 277910 21:27 ?      00:00:00 nginx: worker process                                                      
www      27800 277910 21:27 ?      00:00:00 nginx: worker process                                                      
root   27905 263490 21:28 pts/0    00:00:00 grep nginx
# chkconfig --list|grep nginx
nginx             0:off   1:off   2:off   3:on    4:on    5:on    6:off
# /etc/init.d/nginx status
Usage: /etc/init.d/nginx {start|restart|reload|stop|test|show}
# curl 10.10.240.21
Nginx 1.4.3 in 10.10.240.21is success!
# 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 *********************************************************

GATHERING FACTS ***************************************************************
ok:

TASK: *************************************
changed:

TASK: *************************
changed:

TASK: ***************************************
changed:

TASK: **************************************
changed:

TASK: **********************
changed:

TASK: *********************************************
changed:

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
# ps -ef|grep nginx
root   28417 263490 21:37 pts/0    00:00:00 grep nginx
# chkconfig --list|grep nginx
# ll /etc/init.d/nginx
ls: cannot access /etc/init.d/nginx: No such file or directory
# ll /usr/local/
total 44
drwxr-xr-x. 2 root   root   4096 Sep 232011 bin
drwxr-xr-x. 2 root   root   4096 Sep 232011 etc
drwxr-xr-x. 2 root   root   4096 Sep 232011 games
drwxr-xr-x. 2 root   root   4096 Sep 232011 include
drwxr-xr-x. 2 root   root   4096 Jul 10 22:43 lib
drwxr-xr-x. 2 root   root   4096 Sep 232011 lib64
drwxr-xr-x. 2 root   root   4096 Sep 232011 libexec
drwxr-xr-x. 2 root   root   4096 Sep 232011 sbin
drwxr-xr-x. 5 root   root   4096 May 122013 share
drwxr-xr-x. 3 root   root   4096 May 122013 src
drwxr-xr-x5 zabbix zabbix 4096 Jul8 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 -vnginx_install.zip
Archive:nginx_install.zip
Length   Method    SizeCmpr    Date    Time   CRC-32   Name
--------------------- ---- ---------- ----- ------------
   132Defl:N       9528% 07-16-2014 09:34 d75c7ef9nginx_install.yml
   117Defl:N       8924% 07-16-2014 09:35 27eb35d2nginx_delete.yml
       0Stored      0   0% 07-03-2014 17:29 00000000roles/common/
       0Stored      0   0% 06-30-2014 15:58 00000000roles/common/meta/
   267Defl:N      17833% 07-16-2014 09:25 31ee20ecroles/common/meta/main.yml
       0Stored      0   0% 07-14-2014 13:40 00000000roles/common/tasks/
   586Defl:N      26854% 07-16-2014 09:25 1c0af2a1roles/common/tasks/main.yml
       0Stored      0   0% 06-19-2014 13:43 00000000roles/common/handlers/
      58Defl:N       4817% 07-16-2014 09:25 8d058053roles/common/handlers/main.yml
       0Stored      0   0% 06-19-2014 13:30 00000000roles/common/vars/
       0Stored      0   0% 06-19-2014 13:30 00000000roles/common/templates/
       0Stored      0   0% 06-19-2014 13:30 00000000roles/common/files/
       0Stored      0   0% 06-24-2014 11:27 00000000roles/nginx_install/
       0Stored      0   0% 07-08-2014 14:12 00000000roles/nginx_install/meta/
   198Defl:N      14925% 07-16-2014 09:25 e527ea95roles/nginx_install/meta/main.yml
       0Stored      0   0% 07-03-2014 17:46 00000000roles/nginx_install/tasks/
   198Defl:N      15323% 07-16-2014 09:25 eb70a996roles/nginx_install/tasks/delete.yml
      65Defl:N       4137% 07-16-2014 09:25 a3197ca7roles/nginx_install/tasks/main.yml
    1142Defl:N      30074% 07-16-2014 09:25 34ddc722roles/nginx_install/tasks/copy.yml
    1574Defl:N      43173% 07-16-2014 09:25 13c2a951roles/nginx_install/tasks/install.yml
       0Stored      0   0% 06-19-2014 13:30 00000000roles/nginx_install/handlers/
       0Stored      0   0% 06-24-2014 10:38 00000000roles/nginx_install/vars/
   155Defl:N      10532% 07-16-2014 09:25 70e58924roles/nginx_install/vars/main.yml
       0Stored      0   0% 07-16-2014 09:25 00000000roles/nginx_install/templates/
   738Defl:N      33754% 07-16-2014 09:25 bd02415eroles/nginx_install/templates/vhost.conf
   784Defl:N      34656% 06-24-2014 11:37 6d09dba5roles/nginx_install/templates/install_nginx.sh
    1642Defl:N      69858% 07-16-2014 09:25 60b4ed9aroles/nginx_install/templates/nginx.conf
   196Defl:N      14725% 07-16-2014 09:25 fa0f7181roles/nginx_install/templates/index.php
      77Defl:N       71   8% 07-16-2014 09:25 1fdd8439roles/nginx_install/templates/index.html
   926Defl:N      45950% 07-16-2014 09:25 4aa2e8faroles/nginx_install/templates/nginx
       0Stored      0   0% 07-03-2014 14:24 00000000roles/nginx_install/files/
2346820Defl:N2283881   3% 07-16-2014 09:25 8a501ba6roles/nginx_install/files/nginx-1.4.3.tar.gz
       0Stored      0   0% 06-23-2014 14:03 00000000roles/nginx_delete/
       0Stored      0   0% 07-08-2014 14:12 00000000roles/nginx_delete/meta/
   197Defl:N      14725% 07-16-2014 09:25 ab72e486roles/nginx_delete/meta/main.yml
       0Stored      0   0% 07-01-2014 17:05 00000000roles/nginx_delete/tasks/
   893Defl:N      28968% 07-16-2014 09:25 68681d99roles/nginx_delete/tasks/delete.yml
      22Stored       22   0% 07-16-2014 09:25 728ce4aaroles/nginx_delete/tasks/main.yml
       0Stored      0   0% 06-24-2014 14:14 00000000roles/nginx_delete/handlers/
       0Stored      0   0% 06-24-2014 12:48 00000000roles/nginx_delete/vars/
   155Defl:N      10532% 07-16-2014 09:25 70e58924roles/nginx_delete/vars/main.yml
       0Stored      0   0% 06-19-2014 17:32 00000000roles/nginx_delete/templates/
       0Stored      0   0% 06-24-2014 13:53 00000000roles/nginx_delete/files/
--------          ----------                            -------
2356942          2288359   3%                            43 files




如果觉得好,给个赞并多评论,谢谢。
页: [1]
查看完整版本: 运维自动化之ansible playbook安装nginx