运维自动化之ansible playbook安装lamp环境

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

下面介绍使用ansible playbook安装lamp环境

下面是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

下面是php的安装信息:

1
2
3
4
5
php_user: www
php_port: 9000
php_dir:  /usr/local
php_version: 5.3.10
mysql_basedir:  /data/mysql/basedir

下面是mysql的安装信息:

1
2
3
4
5
6
7
8
9
10
mysql_basedir:  /data/mysql/basedir
mysql_datadir:  /data/mysql/datadir
mysql_user: mysql
mysql_database_user: root
mysql_passwd:  'E4yR3WnoluSFTCBAI'
mysql_port: 3306
mysql_sock:  /data/mysql/datadir/mysql .sock
mysql_charset: utf8
mysql_collation: utf8_general_ci
mysql_version: Percona-Server-5.5.21-rel25.1. tar .gz

下面是lamp的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
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
83
84
85
86
87
88
89
90
91
92
09:09:17  # tree apache_* mysql_* php_*
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
mysql_delete
├── files
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── delete.yml
│   └── main.yml
├── templates
└── vars
     └── main.yml
mysql_install
├── files
│   └── mysql. tar .gz
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── copy.yml
│   ├── delete.yml
│   ├──  install .yml
│   └── main.yml
├── templates
│   ├── install_mysql.sh
│   ├── my.cnf
│   ├── mysqld
│   └── mysql_security.sh
└── vars
     └── main.yml
php_delete
├── files
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── delete.yml
│   └── main.yml
├── templates
│   └── delete_php.sh
└── vars
     └── main.yml
php_install
├── files
│   └── php. tar .gz
├── handlers
├── meta
│   └── main.yml
├── tasks
│   ├── copy.yml
│   ├── delete.yml
│   ├──  install .yml
│   └── main.yml
├── templates
│   ├── install_php.sh
│   ├── php-fpm
│   └── php-fpm.conf
└── vars
     └── main.yml
 
36 directories, 47 files

playbook的lamp安装内容是:

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

playbook的lamp删除的内容是:

1
2
3
4
5
6
7
8
9
10
09:10:58  # cat lamp_delete.yml 
---
- hosts:  "`host`"
   remote_user:  "`user`"
   gather_facts: True
   roles:
     - mysql_delete
     - apache_delete
     - php_delete
     - pcre_delete

1、安装lamp

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
09:27:09  # time ansible-playbook lamp_install.yml --extra-vars "host=192.168.240.11 user=root" --private-key=/root/test.pem
 
PLAY [192.168.240.11] ********************************************************* 
 
GATHERING FACTS *************************************************************** 
ok: [192.168.240.11]
 
TASK: [common | Install initializtion require software] *********************** 
changed: [192.168.240.11]
 
TASK: [pcre_install | Copy Pcre Software To Redhat Client] ******************** 
changed: [192.168.240.11]
 
TASK: [pcre_install | Uncompression Pcre Software In Redhat Client] *********** 
changed: [192.168.240.11]
 
TASK: [pcre_install | Delete Pcre Software In Redhat Client] ****************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Copy Apache Software To Redhat Client] **************** 
changed: [192.168.240.11] => (item=httpd-2.4.7. tar .gz)
changed: [192.168.240.11] => (item=libiconv. tar .gz)
 
TASK: [apache_install | Create Apache User In Redhat Client] ****************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Uncompression Apache Software To Redhat Client] ******* 
changed: [192.168.240.11]
 
TASK: [apache_install | Copy Apache Config To Redhat Client] ****************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Copy Apache Vhost Config To Redhat Client] ************ 
changed: [192.168.240.11]
 
TASK: [apache_install | Copy Apache Start Service Script  To Redhat Client] *** 
changed: [192.168.240.11]
 
TASK: [apache_install | Create Lib Install Dir] ******************************* 
ok: [192.168.240.11]
 
TASK: [apache_install | Check Apache Iconv In Redhat Client] ****************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Install Apache Iconv In Redhat Client] **************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Check Lib In Config In Redhat Client] ***************** 
failed: [192.168.240.11] => { "changed" true "cmd" "grep -c /usr/local/lib/ /etc/ld.so.conf " "delta" "0:00:00.006510" "end" "2014-07-30 21:45:19.036594" "item" "" "rc" : 1,  "start" "2014-07-30 21:45:19.030084" }
stdout: 0
...ignoring
 
TASK: [apache_install | Install Apache Iconv In Redhat Client] **************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Create Apache Dir] ************************************ 
changed: [192.168.240.11] => (item= /data/webroot/apache )
changed: [192.168.240.11] => (item= /data/webroot/apache/logs )
changed: [192.168.240.11] => (item= /data/webroot/apache/vhost )
 
TASK: [apache_install | Install Check Script In Redhat Client] **************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Create Index Html To Redhat Client] ******************* 
changed: [192.168.240.11]
 
TASK: [apache_install | Start Apache Service In Redhat Client] **************** 
changed: [192.168.240.11]
 
TASK: [apache_install | Add Boot Start Apache Service In Redhat Client] ******* 
changed: [192.168.240.11]
 
TASK: [apache_install | Delete Apache compression Software In Redhat Client] *** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Copy Mysql Software To Redhat Client] ****************** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Create Mysql User In Redhat Client] ******************** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Copy Mysql Start Script To Redhat Client] ************** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Copy Install Mysql Script  To Redhat Client] *********** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Copy Mysql Config To Redhat Client] ******************** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Copy Mysql Security Script To Redhat Client] *********** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Create Mysql Install Dir] ****************************** 
ok: [192.168.240.11]
 
TASK: [mysql_install | Uncompression Mysql Software To Redhat Client] ********* 
changed: [192.168.240.11]
 
TASK: [mysql_install | Modify Mysql Dir Permission In Redhat Client] ********** 
ok: [192.168.240.11] => (item= /data/mysql/datadir )
ok: [192.168.240.11] => (item= /data/mysql/basedir )
 
TASK: [mysql_install | Install Mysql Script In Redhat Client] ***************** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Start Myql Security Script In Redhat Client] *********** 
changed: [192.168.240.11]
 
TASK: [mysql_install | Add Boot Start Mysql Service In Redhat Client] ********* 
changed: [192.168.240.11]
 
TASK: [mysql_install | Delete Mysql compression Software In Redhat Client] **** 
changed: [192.168.240.11]
 
TASK: [php_install | Copy Php Software To Redhat Client] ********************** 
changed: [192.168.240.11]
 
TASK: [php_install | Uncompression Php Software To Redhat Client] ************* 
changed: [192.168.240.11]
 
TASK: [php_install | Copy Php Start Script To Redhat Client] ****************** 
changed: [192.168.240.11]
 
TASK: [php_install | Copy Php Config To Redhat Client] ************************ 
changed: [192.168.240.11]
 
TASK: [php_install | Copy Php Install Script To Redhat Client] **************** 
changed: [192.168.240.11]
 
TASK: [php_install | Create Php User In Redhat Client] ************************ 
ok: [192.168.240.11]
 
TASK: [php_install | Install Php Script In Redhat Client] ********************* 
changed: [192.168.240.11]
 
TASK: [php_install | Start Php Service In Redhat Client] ********************** 
changed: [192.168.240.11]
 
TASK: [php_install | Add Boot Start Php Service In Redhat Client] ************* 
changed: [192.168.240.11]
 
TASK: [php_install | Delete Php compression Software In Redhat Client] ******** 
changed: [192.168.240.11]
 
PLAY RECAP ******************************************************************** 
192.168.240.11             : ok=45   changed=40   unreachable=0    failed=0   
 
 
real    4m42.365s
user    0m39.984s
sys 0m2.872s

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
[root@ip-10-10-240-14 tmp] # ps -ef|grep mysql|wc -l
3
[root@ip-10-10-240-14 tmp] # ps -ef|grep http|wc -l
6
[root@ip-10-10-240-14 tmp] # ps -ef|grep php|wc -l
130
[root@ip-10-10-240-14 tmp] # ll /data/webroot/apache/
logs/  vhost/ 
[root@ip-10-10-240-14 tmp] # ll /data/webroot/apache/vhost/
total 8
-rw-r--r-- 1 www www  42 Jul 30 21:45 index.html
-rw-r--r-- 1 www www 174 Jul 30 21:45 index.php
[root@ip-10-10-240-14 tmp] # cat /data/webroot/apache/
logs/  vhost/ 
[root@ip-10-10-240-14 tmp] # cat /data/webroot/apache/
logs/  vhost/ 
[root@ip-10-10-240-14 tmp] # cat /data/webroot/apache/vhost/index.html 
Apache 2.4.7  in  10.10.240.14  is success!
[root@ip-10-10-240-14 tmp] # cat /data/webroot/apache/vhost/index.php 
<?php
$link = mysql_connect( '10.10.240.14' , 'zabbix' , 'zabbix' );
if  ($link)
echo  "Successs!!!Php install success!\n" ;
else
echo  "Fail!!!Php install fail!\n" ;
mysql_close();
?>
[root@ip-10-10-240-14 tmp] # curl 10.10.240.14/index.html
Apache 2.4.7  in  10.10.240.14  is success!
[root@ip-10-10-240-14 tmp] # curl 10.10.240.14/index.php
Successs!!!Php  install  success!

可以看到安装没问题

3、删除

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
09:49:03  # time ansible-playbook lamp_delete.yml --extra-vars "host=192.168.240.11 user=root" --private-key=/root/test.pem
 
PLAY [192.168.240.11] ********************************************************* 
 
GATHERING FACTS *************************************************************** 
ok: [192.168.240.11]
 
TASK: [mysql_delete | Stop Mysql Service] ************************************* 
changed: [192.168.240.11]
 
TASK: [mysql_delete | Delete Mysql Boot Start Script] ************************* 
changed: [192.168.240.11]
 
TASK: [mysql_delete | Delete Mysql Dir And Socket] **************************** 
changed: [192.168.240.11]
 
TASK: [mysql_delete | Delete Mysql User] ************************************** 
changed: [192.168.240.11]
 
TASK: [mysql_delete | Delete Mysql Service Start Script] ********************** 
changed: [192.168.240.11]
 
TASK: [apache_delete | Stop Httpd Service In RedHat Client] ******************* 
changed: [192.168.240.11]
 
TASK: [apache_delete | Delete Boot Start In RedHat Client] ******************** 
changed: [192.168.240.11]
 
TASK: [apache_delete | Delete Apache Dir In RedHat Client] ******************** 
changed: [192.168.240.11]
 
TASK: [apache_delete | Delete Apache Service Script In RedHat Client] ********* 
changed: [192.168.240.11]
 
TASK: [apache_delete | Delete Apache User] ************************************ 
failed: [192.168.240.11] => { "changed" true "cmd" "userdel www " "delta" "0:00:00.013968" "end" "2014-07-30 22:00:24.245309" "item" "" "rc" : 8,  "start" "2014-07-30 22:00:24.231341" }
stderr: userdel: user www is currently logged  in
...ignoring
 
TASK: [php_delete | Copy Delete Php Script To RedHat Client] ****************** 
changed: [192.168.240.11]
 
TASK: [php_delete | Run Delete Php Script In RedHat Client] ******************* 
changed: [192.168.240.11]
 
TASK: [php_delete | Delete Php User In Redhat Client] ************************* 
changed: [192.168.240.11]
 
TASK: [php_delete | Delete Php Script] **************************************** 
changed: [192.168.240.11]
 
TASK: [pcre_delete | Delete Pcre] ********************************************* 
changed: [192.168.240.11]
 
PLAY RECAP ******************************************************************** 
192.168.240.11             : ok=16   changed=15   unreachable=0    failed=0   
 
 
real    0m23.096s
user    0m3.943s
sys 0m0.516s

4、删除后测试

1
2
3
4
5
6
7
8
[root@ip-10-10-240-14 tmp] # ps -ef|grep http
root      7491  1259  0 22:02 pts /0     00:00:00  grep  http
[root@ip-10-10-240-14 tmp] # ps -ef|grep mysql
root      7493  1259  0 22:03 pts /0     00:00:00  grep  mysql
[root@ip-10-10-240-14 tmp] # ps -ef|grep php
root      7495  1259  0 22:03 pts /0     00:00:00  grep  php
[root@ip-10-10-240-14 tmp] # curl 10.10.240.14
curl: (7) couldn't connect to host

可与看到都删除了。

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

wKioL1PZpeayFuPXAAGZcVlnikI726.jpg




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




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 运维 安全
构建高效自动化运维体系:Ansible与Docker的完美结合
【2月更文挑战第31天】 随着云计算和微服务架构的兴起,自动化运维成为保障系统稳定性和提升部署效率的关键手段。本文将详细探讨如何通过Ansible和Docker的结合来构建一个高效、可靠且易于管理的自动化运维体系。首先,介绍自动化运维的必要性及其在现代IT基础设施中的作用;然后,分别阐述Ansible和Docker的技术特点及优势;最后,提供一个基于Ansible和Docker结合使用的实践案例,以及实施过程中遇到的挑战和解决方案。
|
1月前
|
运维 安全 网络安全
构建高效自动化运维体系:Ansible与Docker的完美融合
【2月更文挑战第30天】在当今快速迭代和持续部署的软件发展环境中,自动化运维成为确保效率和稳定性的关键。本文将探讨如何通过结合Ansible和Docker技术,构建一个高效的自动化运维体系。我们将分析Ansible的配置管理功能和Docker容器化的优势,并展示它们如何协同工作以简化部署流程,增强应用的可移植性,并提供一致性的系统环境。此外,文章还将介绍一些最佳实践,帮助读者在真实环境中实现这一整合方案。
|
1月前
|
敏捷开发 运维 测试技术
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第18天】 随着敏捷开发和DevOps文化的普及,持续集成(CI)已成为软件开发过程中不可或缺的组成部分。本文将深入探讨自动化测试在持续集成环境中的重要性,分析其如何提高软件交付速度、保障质量并减少人工干预。通过对现代软件工程实践中自动化测试策略的剖析,揭示了其在维护高效率和高质量软件产品中的核心地位。
31 7
|
1月前
|
敏捷开发 监控 jenkins
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第14天】 随着敏捷开发和持续集成(CI)的普及,自动化测试已成为确保软件质量和加速交付过程的重要环节。本文旨在深入探讨自动化测试在持续集成环境中的核心价值,分析其如何提高测试效率,减少人工错误,并保障产品的快速迭代与发布。通过对自动化测试工具、策略及最佳实践的综合评述,为读者呈现一个全面的自动化测试实施指南。
18 0
|
3月前
|
数据可视化 Linux 网络安全
CentOS7.9下离线安装OctoMation编排自动化SOAR开源社区免费版
CentOS7.9下离线安装OctoMation编排自动化SOAR开源社区免费版
61 0
|
1月前
|
敏捷开发 监控 Devops
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第15天】 本文旨在探讨自动化测试作为软件开发过程中不可或缺的一环,尤其在持续集成(CI)环境中的显著影响。通过深入分析自动化测试的实施策略和最佳实践,文章揭示了如何有效提升软件交付速度和质量。文中不仅讨论了自动化测试的基本概念和框架选择,还详细阐述了其在CI流程中的关键步骤及潜在挑战,并提出了相应的解决方案。
20 4
|
1月前
|
敏捷开发 测试技术 持续交付
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第15天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已成为确保软件质量和加速产品上市速度的核心环节。本文将深入探讨自动化测试在持续集成环境中的重要性,分析其如何提高测试效率,减少人工干预的错误,并实现快速反馈循环。通过案例分析和最佳实践分享,我们将揭示自动化测试策略对提升软件开发流程的影响,以及如何有效地将其整合到现代软件生命周期管理中。
|
18天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
38 6
|
26天前
|
运维 Kubernetes 监控
构建高效稳定的容器化运维环境
在现代IT基础设施中,容器技术以其轻量级、快速部署和易于管理的特性成为企业数字化转型的重要支撑。本文将深入探讨如何构建一个高效且稳定的容器化运维环境,涵盖从容器选择、集群管理到持续集成与持续部署(CI/CD)的最佳实践。文章旨在为运维工程师提供一套系统的解决方案,以应对日益复杂的业务需求和技术挑战。
|
1月前
|
人工智能 运维 监控
自动化运维在云计算环境下的应用与挑战
随着云计算技术的不断发展,自动化运维在云环境中扮演着越来越重要的角色。本文将探讨自动化运维在云计算环境下的应用和所面临的挑战,并分析其对企业运维工作的影响,以及未来的发展趋势。
23 8

热门文章

最新文章