一、部署网站
1.上传网站源码到web服务器
方法一:利用xftp工具直接将源码从电脑拖到web服务器中
拖过去后可以在ls查看是非上传成功
方法二:使用lrzsz工具
rz 接受文件:linux接受从windows里传输过来的文件 receive
sz 发送文件 linux发送文件到windows send
[root@web-1 yum.repos.d]# yum install lrzsz -y 下载lrzsz
[root@web-1 yum.repos.d]# sz Centos-7.repo 发送文件到Centos-7.repo文件夹
2.运行网站源码使其可以访问
2.1创建网站服务文件并解压网站源码
[root@web-1 ~]# mkdir /web 新建web文件夹
[root@web-1 ~]# ls 查看root目录下的文件
anaconda-ks.cfg Centos-7.repo go+html+mysql+redis.zip init_env.sh pos_var.sh
[root@web-1 ~]# cp go+html+mysql+redis.zip /web 将网站源码压缩包复制到web文件夹中
[root@web-1 ~]# cd /web
[root@web-1 web]# ls
go+html+mysql+redis.zip 复制成功
[root@web-1 web]# unzip
-bash: unzip: 未找到命令
[root@web-1 web]# yum install unzip -y 安装解压工具
[root@web-1 web]# unzip go+html+mysql+redis.zip 解压源码压缩包
因为网站使用go语言开发的,所以要安装go环境
[root@web-1 web]# yum install epel-release -y 安装epel源
[root@web-1 web]# yum install golang -y 安装go环境
配置go语言的国内下载资源的站点
[root@web-1 web]# go env -w GOPROXY=https://goproxy.cn,direct
[root@web-1 web]# go mod init web
将需要依赖的库下载到本地
[root@web-1 web]# go mod tidy
最后运行go语言的网站
[root@web-1 web]# go run server.go
服务启动后我们发现监听的端口号是8080端口,我们可以在浏览器输入我们的ip地址:8080访问我们的网站
然后我们登录会报错,因为我们还没有搭建mysql数据库服务器
二、安装mysql服务器,部署mysql软件
1.安装mysql软件
利用xftp将mysql5.7安装到mysql服务器中,并且将数据库自动安装脚本也拷贝到数据库服务器中onekey_install_mysql_binary_v3.sh
[root@mysql ~]# ls
anaconda-ks.cfg init_env.sh mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz onekey_install_mysql_binary_v3.sh
[root@mysql ~]# bash onekey_install_mysql_binary_v3.sh 执行数据库安装脚本进行一键安装
安装完成后执行su命令
[root@mysql ~]# su 重新登录加载新的PATH--》有mysql命令路径
然后输入账号密码登录数据库
[root@mysql ~]# mysql -u用户名 -p'密码'
root@(none) 12:02 mysql> 登陆成功
-uroot 指定用户 user -p 指定密码 password
三、数据库初始化
1.建立初始的库
root@(none) 14:50 mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
root@(none) 14:50 mysql>create database users; 创建一个数据库users
root@(none) 14:52 mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| users |
+--------------------+
5 rows in set (0.00 sec)
创建users数据库成功
2.导入表和以前的数据
info.sql 是原来从数据库里导出的数据文件
在web服务器中将info.sql文件远程拷贝到mysql服务器中
[root@web-1 web]# scp info.sql 192.168.205.133:/root
导入数据到MySQL服务器里
[root@mysql ~]# mysql -uroot -p'Sanchuang123#' users < info.sql
root@(none) 15:00 mysql>use users; 进入users库
root@users 15:00 mysql>show tables; 查看users库中的表
建立授权的用户,允许web网站可以连接到数据库里获取数据
root@mysql 15:08 mysql>create user 'scweb'@'192.168.205.132' identified by 'Scweb123';
root@mysql 15:11 mysql>select host,user,authentication_string from user;
+-----------------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------------+---------------+-------------------------------------------+
| localhost | root | *4ABA759CFB5DDBF29AFAFBFB03026091F6F694FD |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| 192.168.205.132 | scweb | *118ACFED48BBA40181290AF31C778D8D2B2CD60E |
+-----------------+---------------+-------------------------------------------+
建立授权用户成功
授予'scweb'@'192.168.205.132'这个用户可以对users库里的所有的表进行全部权限的操作,包括增删改查等
root@mysql 15:11 mysql>grant all on users.* to 'scweb'@'192.168.205.132';
将mysql客户端命令scp到web服务器上,这样web服务器就可以使用mysql这个客户端没有进行远程登录测试
[root@mysql ~]# cd /usr/local/mysql/bin
[root@mysql bin]# scp mysql 192.168.205.132:/usr/bin
在web服务器上登录MySQL服务器
192.168.205.133 是数据库服务器的ip -h 指定数据库服务器的ip地址 host
[root@web-1 web]# mysql -h 数据库服务器的ip地址 -u授权用户名 -p'授权用户密码'
四、配置数据库信息
1.修改网站的server.go的数据库连接地址
[root@web-1 web]# cd /web
[root@web-1 web]# ls
go+html+mysql+redis.zip go.mod go.sum info.sql Readme.md server.go static templates
[root@web-1 web]# vim server.go
将配置文件中的DB_USER换成刚授权的用户名,DB_PASSWORD换成授权用户密码,DB_HOST换成mysql服务器的ip, REDIS_HOST换成mysql服务器的网关,配置完后:wq保存并退出
再次运行web程序
[root@web-1 web]# go run server.go
发现登录和添加学生信息和查询学生信息都可以正常使用
五、安装自动化运维工具ansible
介绍:ansible是使用python开发的一个自动化运维工具,用来对服务器进行批量管理和操作。
ansible的核心组件:
- 主机清单 Host Inventory: 里面写好了可以控制的服务器的ip地址--》控制的机器清单
- 模块 modules: ansible可以使用的工具箱
- 插件: 也是ansible可以使用的工具
- playbook : ansbile需要在主机上执行的事情
1.安装ansible软件
1.1.重新安装一台虚拟机,并执行之前写好的初始化脚本
[root@web-1 ~]# scp init_env.sh 192.168.205.134:/root 远程拷贝初始化脚本到ansible服务器
[root@localhost ~]# bash init_env.sh ansible 192.168.205.134 192.168.205.2 执行初始化脚本一键初始化服务器
1.2.安装ansible软件
安装ansible前先要安装epel源
[root@ansible .ssh]# yum install epel-release -y 安装epel源
[root@ansible .ssh]# yum install ansible -y 安装ansible
1.3.添加主机清单,新增控制的服务器
添加主机清单,新增控制的服务器
[root@ansible ~]# cd /etc/ansible/
[root@ansible ansible]# ls
ansible.cfg hosts roles
[root@ansible ansible]# vim hosts 修改hosts配置文档
在配置文档中添加web服务器和mysql服务器
[web]
web服务器ip ansible_ssh_user='root' ansible_ssh_pass='web服务器密码'
[db]
mysql服务器ip ansible_ssh_user='root' ansible_ssh_pass='mysql服务器密码'
1.4.建立ssh连接实现控制服务器
[root@ansible ansible]# ssh root@web服务器的ip
[root@ansible ansible]# ssh root@mysql服务器的ip
可以使用[root@ansible ansible]# ansible all -m shell -a "ip add"语句检验是否实现对web和mysql服务器的控制