CentOS 服务器环境搭建
(包括mysql5.7+jdk1.8+maven3.6+git+docker+docker-compose+jenkins)
tomcat部署项目的时候没用到先不装了
后续添加negix和tomcat
去 MySQL 官网下载 YUM 的 RPM 安装包,http://dev.mysql.com/downloads/repo/yum/
下载 mysql 源安装包
$ curl -LO http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装 mysql 源
$ sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm
检查 yum 源是否安装成功
$ sudo yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community MySQL Connectors Community 21
mysql-tools-community MySQL Tools Community 38
mysql57-community MySQL 5.7 Community Server 130
如上所示,找到了 mysql 的安装包
$ sudo yum install mysql-community-server
安装服务
$ sudo systemctl enable mysqld
启动服务
$ sudo systemctl start mysqld
查看服务状态
$ sudo systemctl status mysqld
MySQL 5.7 启动后,在 /var/log/mysqld.log
文件中给 root 生成了一个默认密码。通过下面的方式找到 root 默认密码,然后登录 mysql 进行修改:
$ grep 'temporary password' /var/log/mysqld.log
$ root@localhost: **********
登录 MySQL 并修改密码
$ mysql -u root -p
Enter password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
**ps: **默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于 8 位。
这样的密码太难记,接下来修改密码检查策略:
首先关闭mysql服务
service mysqld stop
然后打开mysql 配置文件,在/etc/my.cnf文件中加入下面两句。
# 修改密码强度,添加如下键值对, 0=LOW, 1=MEDIUM, 2=STRONG
validate_password_policy=0
# 禁用密码校验策略
validate_password = off
保存退出,并重启mysql服务:
service mysqld restart
登录mysql并修改为简单的密码
$ mysql -u root -p
Enter password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
MySQL 默认只允许 root 帐户在本地登录,如果要在其它机器上连接 MySQL,必须修改 root 允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,本例添加一个新的帐户:
mysql> SET PASSWORD = PASSWORD('password');
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> flush privileges;
下载地址: http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
进入home 目录下:
[root@centos home]# wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
[root@centos home]# tar -zxvf jdk-8u181-linux-x64.tar.gz
可以看到home目录下多出一个jdk1.8.0_181文件
现在可以删除压缩包了
[root@centos home]# rm jdk-8u181-linux-x64.tar.gz
打开/etc/profile 文件末尾添加:
# set jdk Environmental variable
export JAVA_HOME=/home/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存文件并执行
source /etc/profile
测试安装结果
[root@centos home]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
下载地址: http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
进入home 目录下:
[root@centos home]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
[root@centos home]# tar -zxvf apache-maven-3.6.1-bin.tar.gz
可以看到home目录下多出一个apache-maven-3.6.1文件
删除压缩包
[root@centos home]# rm apache-maven-3.6.1-bin.tar.gz
打开/etc/profile 文件末尾添加
# set maven Environmental variable
export MAVEN_HOME=/home/maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin
测试安装结果
[root@centos home]# mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /home/maven-3.3.9
Java version: 1.8.0_181, vendor: Oracle Corporation
Java home: /home/jdk1.8.0_181/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
执行命令
yum install git
安装最新的docker:
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
(或者使用:
$ curl -sSL https://get.docker.com/ | sh )
启动docker
$ service docker start
确认Docker成功最新的docker:
$ sudo docker run hello-world
1.从github上下载docker-compose二进制文件安装
下载最新版的docker-compose文件
$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加可执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
测试安装结果
$ docker-compose --version
docker-compose version 1.16.1, build 1719ceb
2.pip安装
$ sudo pip install docker-compose
#如出现以下情况
[root@izwz91quxhnlk9mqhy9p75z run]# docker-compose version
/usr/lib/python2.7/site-packages/requests/init.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.2.1) doesn’t match a supported version!
RequestsDependencyWarning)
docker-compose version 1.23.1, build b02f130
docker-py version: 3.5.1
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
原因:python库中urllib3 (1.22) or chardet (2.2.1) 的版本不兼容
解决如下:
$ pip uninstall urllib3
$ pip uninstall chardet
$ pip install requests
yum install -y java
添加Jenkins库到yum库,Jenkins将从这里下载安装。
$ wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ pm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
$ yum install -y jenkins
如果不能安装就到官网下载jenkis的rmp包,官网地址(http://pkg.jenkins-ci.org/redhat-stable/)
wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm
rpm -ivh jenkins-2.7.3-1.1.noarch.rpm
配置jenkis的端口
vim /etc/sysconfig/jenkins
找到修改端口号:
#此端口不冲突可以不修改
JENKINS_PORT="8080"
部署项目时,Jenkins提示文件操作权限异常
Building in workspace /var/lib/jenkins/workspace/facade
java.nio.file.AccessDeniedException: /home/project/privateblog
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
at java.nio.file.Files.createDirectory(Files.java:674)
at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
at java.nio.file.Files.createDirectories(Files.java:767)
at hudson.FilePath.mkdirs(FilePath.java:3229)
at hudson.FilePath.access$1300(FilePath.java:210)
at hudson.FilePath$Mkdirs.invoke(FilePath.java:1251)
at hudson.FilePath$Mkdirs.invoke(FilePath.java:1247)
at hudson.FilePath.act(FilePath.java:1075)
at hudson.FilePath.act(FilePath.java:1058)
at hudson.FilePath.mkdirs(FilePath.java:1243)
at hudson.plugins.git.GitSCM.createClient(GitSCM.java:811)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1186)
at hudson.scm.SCM.checkout(SCM.java:504)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1208)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
at hudson.model.Run.execute(Run.java:1816)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE
Jenkins默认以jenkins用户运行,jenkins在删除文件、创建文件、覆盖文件可能发送没有权限的问题。
将Jenkins账户分别加入到root组中
gpasswd -a jenkins root
修改/etc/sysconfig/jenkins文件
JENKINS_USER="root"
重启jenkins 服务项目部署成功