在 ubuntu 中愉快的安装 Jenkins

这篇文章详细的记录了在 ubuntu 中安装 Jenkins 的一步又一步,由于找了不少 Linux 下安装 Jenkins 的教程,不是很满意
因此决定本身写一篇以备后用(终于让我找到了Java 不用去官网下载的方法了~haha)
为了写文章,狠心把个人 Windows 服务器重装了,允悲。html

安装前的准备

若是你刚好是腾讯云的 Ubuntu,默认用户名为:ubuntuubuntu

ubuntu 开启 root 的相关设置

若要使用 root 登陆,第一次激活须要设置 root 用户的密码:sudo passwd,
两次密码设置后便可经过 su root 切换用户
如今可使用 root 可是没法远程链接,还须要设置/etc/ssh/sshd_configPermitRootLogin 的值为 yes
设置后记得重启 ssh 服务:sudo service ssh restartvim

刚接触 linux 时很但愿有人能告诉个人一些基本姿式

命令不少不少,且用且搜。浏览器

  • 切换用户:su rootbash

  • 权限问题:非 root 帐户在执行命令时加上 sudo 等于超级管理员执行服务器

  • 经常使用命令: ls -a:显示全部文件及目录 pwd:查看当前路径 lsb_release -a:查看系统版本 ifconfig:查看 IP 等信息 ps:显示正在运行中的进程的信息 学习更多ssh

  • vim 经常使用的几个命令: i:输入模式(使用 vim 打开文件后先按一些 i,而后再移动光标输入字符~),
    w:保存,
    q:退出,
    wq:保存并退出,
    q!:退出保存
    学习更多curl

  • 下载软件:搜 wget xxxcurl xxx

一切准备就绪,LINK START

安装 Jenkins

第一次安装的能够稍微看下jenkins 的安装文档 总之,若是没有安装 Java 须要安装一下。

下面是目前找到的在 ubuntu 下安装 Java 最简单的方法

Java 安装

参考:https://blog.csdn.net/geekun/article/details/51325525

sudo add-apt-repository ppa:openjdk-r/ppa
# 须要回车一下
sudo apt-get update
echo y|sudo apt-get install openjdk-8-jdk
复制代码

Jenkins的安装

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
echo y|sudo apt-get install jenkins
复制代码

Jenkins的运行

Jenkins 是以服务的形式运行的,故可以使用以下民两个管理服务,默认使用 8080 端口

启动服务:sudo service jenkins start

相关服务命令:sudo service jenkins start|stop|restart

防火墙问题

若是由于防火墙的问题可使用:sudo ufw allow 8080 开放指定端口 ps:在腾讯云的主机中默认防火墙是关闭的(sudo ufw status查看)

Jenkins的配置

至此,能够经过 http://ip:8080 访问 Jenkins 了,而后就是初始化和使用了

  1. 使用cat /var/lib/jenkins/secrets/initialAdminPassword查看初始密码并在浏览器中登陆
  2. 安装推荐或自选插件(第一次使用推荐就好,后面能够根据本身须要作调整)
  3. 建立第一个管理员用户 略~
  4. 设置 Jenkins 网址..

正式开启 Jenkins 之旅

踩过的坑

  • shell 脚本没法访问环境变量 解决方案为:首行添加 #!/bin/bash -ilex,此为我安装 nvm 后在终端能够访问, Jenkins 构建 shell 脚本时没法访问的解决方案

    经过-i 参数和-l 参数让 bash 为 login shell and interactive shell,就能够读取/etc/profile 和~/.bash_profile 等文件
    对于 e 参数表示一旦出错,就退出当前的 shell,x 参数表示能够显示所执行的每一条命令

总结

在使用过程当中,还有不少须要记录的,后续再逐步总结。
有个想法就是最终能够构建一个本身的Jenkins镜像,往里面添加几个本身的技术栈的发布模板,应该挺爽的,多尝试,多总结。
最近十分不容易的用Jenkins+Docker把项目部署到服务器了,在找资料的过程当中,发现很难一下就找到本身想要的,果真,仍是得本身动手总结了。
之后也会用到,趁如今总结一二,之后就不要处处找文章了,哈哈。

参考文章