在挪动端DevOps流构建环节中,咱们通常会采纳服务器Jenkins进行Android/iOS打包测试、灰度、上线生产等集成操作,以下是Mac终端连贯近程Linux装置Jenkins并配置Android构建环境关键步骤记录,能够在实践中作为参考
1.连贯近程Linux服务器
通过Mac终端运行上面命令<ssh root@ip地址>
ssh root@00.000.00.00
会提醒 :The authenticity of host '00.000.00.00 (00.000.00.00)' can't be established.
ECDSA key fingerprint is SHA256:CjvSLfRn/IeKE6O0+y/6XERGt1m6AHiHRgX76U/W+3E.
Are you sure you want to continue connecting (yes/no/[fingerprint])?示意意思:无奈确认host主机的真实性,只晓得它的公钥指纹,问你还想持续连贯吗?
所谓"公钥指纹",是指公钥长度较长(这里采纳RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再进行比拟,就容易多了。
很天然的一个问题就是,用户怎么晓得近程主机的公钥指纹应该是多少?答复是没有好方法,近程主机必须在本人的网站上贴出公钥指纹,以便用户自行核查。
假设通过危险掂量当前,用户决定承受这个近程主机的公钥输出 yes ,会提醒 : Warning: Permanently added 'host,12.18.429.21' (RSA) to the list of known hosts ,示意host主机曾经失去认可,此时输出明码xxxxxxx
如果明码正确,就能够登录了。当近程主机的公钥被承受当前,它就会被保留在文件$HOME/.ssh/known_hosts之中。下次再连贯这台主机,零碎就会认出它的公钥曾经保留在本地了,从而跳过正告局部,间接提醒输出明码。
每个SSH用户都有本人的known_hosts文件,此外零碎也有一个这样的文件,通常是/etc/ssh/ssh_known_hosts,保留一些对所有用户都可信赖的近程主机的公钥
2.更新CentOS 7 零碎
通过Mac终端运行上面命令
sudo yum install epel-releasesudo yum updatesudo reboot
3.装置OpenJDK
通过Mac终端运行上面命令
sudo yum install java-1.8.0-openjdk.x86_64java -versionsudo vim ~/.bash_profileJAVA_HOME=/usr/local/java-1.8.0-openjdk.x86_64PATH=$JAVA_HOME/tools:$PATHexport JAVA_HOMEexport PATHsource ~/.bash_profile
4.装置wget命令
通过Mac终端运行上面命令
sudo yum -y install wget
5.通过Linux服务器查看文件门路
通过Mac终端运行上面命令
whereis javawhich javaecho $JAVA_HOMEecho $PATH
6.装置Android sdk
下载地址 http://tools.android-studio.org/index.php/sdk/
通过Mac终端运行上面命令
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgztar -zvxf android-sdk_r24.4.1-linux.tgzmv android-sdk-linux /usr/local/
7.通过sdkmanager 命令装置Android工具包
- ./sdkmanager packages 其中packages代表须要装置的工具包的path , 查看path 可通过 ./sdkmanager --list 命令,
packages参数 必须要应用引号引起来,可同时增加多个packages参数同时装置多个包(多个包之间用空格隔开,并各自应用引号引起来) - 装置平台工具包(adb 和 fastboot 命令的包)
./sdkmanager "platform-tools" - 同时装置多个包
./sdkmanager "platform-tools" "build-tools;28.0.3" "platforms;android-28" - 更新已装置的包
./sdkmanager --update 卸载已装置的包
./sdkmanager --uninstall "安装包path"卸载单个 ./sdkmanager --uninstall "build-tools;28.0.0"
卸载多个 ./sdkmanager --uninstall "build-tools;28.0.0" "platforms;android-26"
8.配置ANDROID_HOME环境变量
通过Mac终端运行上面命令
sudo vim ~/.bash_profileANDROID_HOME=/usr/local/android-sdk-linuxPATH=$ANDROID_HOME/tools:$PATHexport ANDROID_HOMEexport PATHsource ~/.bash_profile
9.更新Android各个版本的sdk
通过Mac终端运行上面命令
android list sdk --all
按序列号update
android update sdk -u --all --filter 1,2,19,20,21,22,23,24,25,27,29,35,36,46,47,48,49,50,51,52,53,54,55,56,57,202
10.装置Jenkins
通过Mac终端运行上面命令
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyyum install jenkins
11.启动Jenkins
通过Mac终端运行上面命令
systemctl start jenkins.service
执行systemctl status jenkins.service查看服务状态,如果呈现启动失败,失败错误信息为Starting Jenkins bash: /usr/bin/java: No such file or directory是java环境配置的问题,找到你的jdk目录,创立软链接即可:
ln -s /usr/lib/jdk1.8.0_251/bin/java /usr/bin/java
12.关上Jenkins
浏览器输出地址 http:<ip或者域名>:8080
http://00.000.00.00:8080/login?from=%2F
13.查看解锁明码
通过Mac终端运行上面命令
sudo vim /var/lib/jenkins/secrets/initialAdminPassword
14.卸载Jenkins
卸载yum形式装置的jenkins(默认装置主目录是在/var/lib/jenkins/)
service jenkins stopyum clean all --能够不执行yum -y remove jenkins
卸载rpm形式装置的jenkins
rpm -e jenkinsrpm -ql jenkinsfind / -iname jenkins | xargs -n 1000 rm -rf
15.上传文件到服务器
上传文件格式:scp - 本地文件门路 - 近程服务器用户名@域名/ip - 冒号/须要保留的门路/须要保留的文件名
scp /Users/xxxx/Downloads/login.keychain root@00.000.00.00:/var/lib/jenkins/kpp_upload/login.keychain
上传文件夹格局:scp -r【本地文件的门路】【服务器用户名】@【服务器地址】:【服务器上寄存文件的门路】
scp /Users/xxxx/Downloads/test root@00.000.00.00:/var/lib/jenkins/kpp_upload/
16.装置Gradle
通过Mac终端运行上面命令
wget https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
17.解压安装包
通过Mac终端运行上面命令
yum install -y unzip zipunzp gradle-4.4.1-all.zip
18.登录Jenkins
进入Jenkins治理页面,抉择系统管理
抉择全局配置
配置全局属性键值对 : ANDROID_HOME
配置钉钉告诉webhook抉择插件治理
装置git、gitlab、钉钉等必要插件
抉择全局配置工具
配置JDK目录
配置Git目录
配置Gradle目录
配置Maven目录抉择节点治理
配置服务器节点,例如Linux连贯近程Mac终端节点
新建构建工作
开启Jenkins构建我的项目之旅
19.其余Linux操作命令
- 强制退出(留神带:)
:q!+enter - 强制保留
:w!+enter - 退出并保留
:wq+enter