需求:从零搭建一个可以自动部署github推送代码,并进行https转发的服务器。记录一下踩的各种坑
服务器操作系统:ubuntu14.04
需求实现:
- 基础环境:Java+MySql;
- 工具:Git+MySql+Nginx;
- Jenkins实现自动部署github推送代码;
- Nginx实现https转发。
基础环境搭建
系统环境配置文件
vim .bashrc //编辑
source ~/.bashrc //保存并生效
一、Java安装
1. jdk包下载
官网下载相应的jdk包,我这里linux服务器为64位,下载了jdk-8u251-linux-x64.tar.gz
www.oracle.com/java/techno…
2. 将jdk传到服务器
建议在/usr下创建一个文件夹java mkdir java
scp localfile root@remotehost:/usr/java
将localfile传输到服务器的java文件夹中(直接使用xftp等工具方式也可以)
3. 解压
tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/java
4. 配置环境变量
打开系统环境配置文件vim .bashrc
在文件下方添加
#set Java environment
export JAVA_HOME=/usr/java/jdk1.8.0_251
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存并生效source ~/.bashrc
5. 测试
在命令行输入java -version
正确则出现java相应版本信息
二、Git安装与配置
1. 使用apt的方式安装Git
sudo apt-get install git
测试是否安装成功git --version
2. git配置邮箱用户名与密码
git config --global user.name "xxx"
git config --global user.email "xxx@xx"
user.name为github用户名,email为github对应的email
3. 添加ssh-key到github
生成密匙ssh-keygen -t rsa
查看公匙cat ~/.ssh/id_rsa.pub
登录github后,在setting-SSH and GPG keys-new SSH key,在key中复制粘贴上方得到的公匙,title可以随意取,保存即可。
三、Jenkins安装配置
在Jenkins的官方网站上,给出了两种在Linux服务器上安装配置Jenkins的方法。一种是直接编译运行jar包,另一种是在服务器上下载并安装。此处介绍第二种。
1. 使用apt的方式安装jenkins
依次键入以下四行命令。以下为jenkins官方给出的apt安装方式,详见 www.jenkins.io/zh/doc/book…
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
我在sudo apt-get install jenkins的时候,下载速度非常慢,work那边一直显示为0,我用了配置阿里云镜像等方法,仍然没能加快下载速度,其中几次等了半天还下载失败了,但最终还是下载成功。另外,我尝试了直接在jenkins下载安装包的方法,也没能成功安装,可能是我安装方式有问题。
apt配置阿里云镜像
sudo vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
2. 为jenkins配置正确的java路径
由于我们的java是自己下载安装的,所以需要为jenkins配置java路径。
sudo vim /etc/init.d/jenkins
修改PATH=/bin:/usr/bin:/sbin:/usr/sbin在后面添加:/usr/java/jdk1.8.0_251/bin
3. 运行jenkins
sudo service jenkins start
正确运行情况为:
Correct java version found
* Starting Jenkins Automation Server jenkins [ OK ]
测试:
curl http://localhost:8080
假如jenkins正确运行,会出现一个html信息。 如有问题,请按相应的问题进行查找修复。
4. 修改jenkins运行端口
jenkins默认运行端口为8080,可以选择修改。
sudo vim /etc/default/jenkins
修改 ----HTTP_PORT=8080----为----HTTP_PORT=8081---- 在这里,“8081”也可被换为其他可用端口。
5. 配置阿里云安全组与防火墙
安全组
进入阿里云ECS控制台,打开网络与安全--安全组,点击安全组右侧的配置规则。
此处采用旧版安全组的配置方法。
点击右上角的快速创建规则,勾选http、https、mysql,授权对象为0.0.0.0/0,意思是全授权,任意ip都可以访问。
点击添加安全组规则,端口范围为8080/8080(此处为你jenkins修改的端口或默认端口8080),授权对象仍为0.0.0.0/0,为8080放行。
至此,安全组配置完毕。
防火墙
ubuntu14.04采用的防火墙是ufw。
输入sudo ufw allow 8080,防火墙允许8080端口通过。
6. 远程打开jenkins并创建新账号
在浏览器中输入ip:8080,打开jenkins,首次打开需要输入密匙。按照网页上显示的输入cat /var/lib/jenkins/secrets/initialAdminPasssword,将显示的密匙复制黏贴到网页上,即可打开Jenkins。
打开System Manager,其中可以管理插件、管理用户,可以添加汉化插件,方便后续操作,此处不做介绍。
打开管理用户,在左侧点击新建用户,输入用户名,密码,就可以了,后续可以用这个账号登录Jenkins。
四、MySql
1. 下载MySql安装包
downloads.mysql.com/archives/co…
在MySql官网,选择你所需要的MySql版本与相应的操作系统版本,下载安装包xxx.tar。
2. 上传并解压
将下载好的安装包上传到服务器,与上文中的Java安装包上传方式相同,此处不再做介绍。
解压安装包 tar -xvf xxx.tar此时会出现多个deb包,参考 blog.csdn.net/qq_27985509… 依次安装相应的包,最后一个包需要先安装依赖,按参考文中所说进行安装即可。
中间会出现一个界面,需要输入mysql的密码,记得别忘了这个密码,忘了密码重置还是要一番功夫的!
3. 启动MySql服务
sudo service mysql start
4. 为外网访问添加权限
打开mysql命令行
mysql -u root -p
依次输入:
use mysql;
update user set host = '%' where user='root';
select host, user from user;
出现了
+----------------+---------------+
| host | user |
+----------------+---------------+
| % | root |
代表所有ip都可以通过root进行连接。最后输入flush privileges;刷新权限就可以了。
5. 防火墙放行
sudo ufw allow 3306
阿里云安全组中,已在上方添加3306入端口。
6. 配置访问端口并重启MySql
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address=127.0.0.1修改为bind-address=0.0.0.0
重启mysql服务,sudo service mysql restart
此时,远程ip已经可以连接服务器数据库了,使用navicat进行连接即可。
五、Nginx转发工具安装
nginx的安装最简单
sudo apt-get install nginx
sudo service nginx start
在本地浏览器中输入服务器ip,可以看到welcome to nginx的画面,说明nginx安装完成。
在本文中,安装并配置了各个工具,下一篇文章介绍Jenkins自动部署与Nginx代理转发https的功能实现。