一、環境搭建 1. 安裝Java 配java_home, /etc/profile 2.安裝Jenkins 下載war包,用 Java -jar Jenkins.war或者 把war包放tomcat的webapps下 http://ip:8080或者 http://ip:8080/jenkins 3 ...
一、環境搭建
1. 安裝Java
配java_home, /etc/profile
2.安裝Jenkins
下載war包,用 Java -jar Jenkins.war或者 把war包放tomcat的webapps下
http://ip:8080或者 http://ip:8080/jenkins
3.安裝ansible
使用Python安裝
先安依賴yum -y install gcc gcc-c++ openssl-devel openssl
下載Python包
tar xf Python-3.5.2.tgz -C /usr/src/
cd /usr/src/Python-3.5.2/
./configure --prefix=/usr/local/python/
make && make install
ln -s /usr/local/python/bin/python3 /usr/bin/python3
/usr/local/python/bin/pip3 install ansible
ln -s /usr/local/python/bin/ansible /usr/local/bin/
4.設置主機無密登錄及hosts文件設置
mkdir -p /etc/ansible
vim /etc/ansible/hosts
cat /etc/ansible/hosts #ansible主機管理配置文件
[nginx] #被管理的主機組名稱,比如nginx
webA ansible_ssh_host=192.168.200.132 ansible_ssh_port=22 ansible_ssh_user=root #第一臺主機
webB ansible_ssh_host=192.168.200.138 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=666666 #第二台主機
如果我們已經設置了ssh免密鑰了。那麼就不需要寫密碼了。例如:webA
我們要是沒有設置免密鑰,那麼就需要安裝sshpass工具,併在/etc/ansible/hosts文件里寫上主機的連接密碼。例如webB
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install sshpass
二、配置私有docker容器倉庫
docker run -d -p 5000:5000 --name registry --restart=always --privileged=true -v /docker/registry:/var/lib/registry registry
vim /etc/docker/daemon.json,添加(在每一個客戶機上同樣要進行這一步驟)
{"insecure-registries":["192.168.1.30:5000"]},其中ip地址為設置為私有倉庫伺服器的IP地址
#重啟服務
systemctl restart docker
三、配置Jenkins
1.安裝插件 ansible
2.創建項目
3.在構建中,添加ansible command
因為是測試,而且代碼拉取打包涉及到開發使用ant打包工具,其中會使用build.xml文件,我不方便取得,所以我們採取了簡化方式,加入我們已經取得了war包,我們簡化拉取,打包為war包的步驟,為了構建docker鏡像,我們採用ansible 把需要打包到tomcat中的war包和要生成鏡像的dockerfile文件發給需要部署的伺服器。
其中dockerfile 文件為docker.tomcat,
from tomcat:8
expose 8080
add ~/docker/SmartMarket115c1.war /usr/local/tomcat/webapps/
cmd ['catalina.sh','run']
同時在jenkins 的系統管理 - 管理插件 - 更新 Publish over SSH
在上圖中配置好你要操作的遠程伺服器
回到項目構建,在構建步驟添加
在Exec command 中填寫你在遠程伺服器需要執行的腳本內容,
docker build -t tomcat_test -f ~/docker/docker.tomcat
其中 tomcat_test 為要構建的鏡像名字, docker.tomcat 為dockerfile 文件的路徑及名字
同時構建完成後我們在遠程伺服器啟動容器,開放8080埠,
docker run -d -p 8080:8080 --name tomcat_test tomcat_test
我們在瀏覽器就可以訪問 ip:8080/項目名,來訪問我們已經在遠程伺服器上部署好的項目了。
以上 只是我的一些初步測試,後續我會結合k8s構建集群式的項目測試環境