美文网首页
Ansible方式CD

Ansible方式CD

作者: 互联网中的一个咸鱼 | 来源:发表于2019-11-18 18:00 被阅读0次

要想用ansbile的方式CD部署项目,需要下载对应的插件


Screenshot of Update Center [Jenkins].jpg

一、配置ansible路径

Screenshot of Manage Jenkins [Jenkins].jpg
Screenshot of Global Tool Configuration [Jenkins].jpg

二、资产服务器

docker-compose up --scale webserver=2 -d  # 准备两个资产服务器
# 注意  部署多个服务时,有些东西不能指定
# 例如  容器名 映射端口 等等

#因为根据一个服务起了多个服务器,这个时候如果用原来的命令只能进入第一个容器

docker-compose exec webserver bash  # 只能进入第一个容器内

#docker-compose exec -h 中这样记载
#--index=index     index of the container if there are multiple
                      #instances of a service [default: 1]
#可以看到默认进入的是第一个容器内

docker-compose exec --index=2 webserver bash  # 进入第二个容器

#当然完全可以用docker命令根据容器名进入容器内
docker exec -it container_name bash

jenkins服务器对资产服务器要进行免密
因为资产服务器没有安装ssh,所以先进行该操作

yum -y install openssh-server
ssh-keygen -A
passwd  # 建立密码

注意 当部署多个应用服务器时, 会发现nginx容器会停止
因为我们重新起了一个容器,容器名会发生变化
所以 配置文件不能通过原先的容器名来识别,只需要修改对应的配置文件即可

我们只需要修改三步
1、进入应用服务器内,修改uwsgi配置文件 修改对应的容器名
2、进入nginx的配置文件 修改负载均衡的主机
3、重启服务即可

三、jenkins端服务器

jenkins服务器下载ansible

apk add ansible   #因为我们的jenkins服务器是apline版  所以用的是apk安装   
yum -y install ansible  #这适用与centos版的

jenkins服务器对资产服务器进行免密

ssh-copy-id root@auto-cmdb_webserver_1
ssh-copy-id root@auto_cmdb_webserver_2

hosts文件内容

[prod]
auto-cmdb_cmdb_1

[dev]
auto-cmdb_cmdb_2

[prod:vars]
name=prod
port=22

[dev:vars]
name=dev
port=23

四、ad-hoc方式

Screenshot of ansible-ad-hoc Config [Jenkins].jpg Screenshot of ansible-ad-hoc Config [Jenkins] (1).jpg

点击高级会出现一些额外的配置


Screenshot of ansible-ad-hoc Config [Jenkins] (2).jpg Screenshot of ansible-ad-hoc Config [Jenkins] (3).jpg

利用debug模块输出刚才定义的变量


Screenshot of ansible-ad-hoc Config [Jenkins] (4).jpg

手动构建查看输出结果


Screenshot of ansible-ad-hoc #3 Console [Jenkins].jpg

输出的变量结果与我们定义的一致 这证明我们的测试成功
这就是anisble的ad-hoc的大致使用方法

五、ansible的剧本使用

Screenshot of ansible-playbook Config [Jenkins].jpg Screenshot of ansible-playbook Config [Jenkins] (1).jpg

剧本内容

---
- name: test ansible-playbook
  hosts: all
  gather_facts: no  # 去掉facts收集资产信息
  remote_user: root
  vars:
    name: shark
    port: 22
  tasks:
    - name: show var
      debug: msg="name==>{{name}},port==>{{port}}"

执行任务 查看结果


Screenshot of ansible-playbook #4 Console [Jenkins].jpg

可以看到 输出的结果和我们预期的结果一致
说明我们的测试成功

相关文章

网友评论

      本文标题:Ansible方式CD

      本文链接:https://www.haomeiwen.com/subject/yyybictx.html