批量部署工具ansible 极简入门——基于docker运行

批量部署工具ansible 极简入门——基于docker运行


)

动机:

在开发或者运维过程中, 难免会遇到经常要部署文件的烦恼,特别是有多台主机的情况;如何快速有效的进行多台设备的开发部署以及运维就显得至关重要。(总不可能一台一台的部署吧。。。慢而且容易出错)。 网上搜罗了一下,发现ansible是一个比较好用的工具,遗憾的是只支持Linux平台,又不想装虚拟机那么笨重的东西(其实是自己C盘被塞满了。。。), 怎么办呢,那就用Docker吧。Docker优点太多了就不罗嗦了,直接走起!

一:简介

ansible架构图

  • 术语介绍:

    • 控制节点(Control node)

      • 说白了就是我们的电脑,里面运行着ansible
    • 受控节点(Managed nodes)

      • 也就是我们要批量部署的主机
    • 清单(Inventory)

      • 受控节点的列表; 一般在 /etc/anaible/hosts文件,也可通过修改配置文件(/etc/ansible/ansible.cfg)指向自定义的任意名称的主机列表文件(只要符合ansible编写规则即可)
    • 模块(Modules)

      • ansible工作的核心,它是依靠各个模块进行工作的,比如常见的复制文件、拉取文件或批量执行命令等
    • 任务(Tasks)

      • 构成剧本的基础单元
    • 剧本(Playbooks)

      • 可以理解为脚本化运行的运维任务,由task构成; 目前的工作中没有用到这个,后期用会再更新
  • 管理主机的两种方式

    • 通过命令行方式(Ad-hoc command)。缺点就是不能保存命令,当然也可以把命令记到笔记里去。(目前我就是这么做的。。。)
    • 通过脚本语言方式(playbook)。面对复杂多变的运维任务时,可以轻松的应对;目前我工作中还没遇到,所以在这就不分(误)享(导)了

二:安装

  1. docker-desktop安装
    • 官网下载, 然后全部点下一步下一步就好了(C不C盘的无所谓的,介意的话自己改一下安装路径)
      注意
      - 如果电脑有virtualbox或VMware虚拟机的,注意要卸载掉
      - Docker需要WSL2支持, 最好更新一下Windows,然后安装WSL2更新

    • 安装好docker-desktop之后,就可以在powershell中运行docker命令了

  2. Portainer镜像拉取/运行
    • portainer是一个可视化的容器管理工具,可以方便的在里面管理镜像(直接用就行了,按照里面的提示来), 官方安装教程
//创建数据卷 
docker volume create portainer_data

//拉取并运行(访问docker hub有时候可能会很慢,可以考虑切换成国内源或者科学上网)
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce 

// 在浏览器运行本地的9000端口
http://localhost:9000/

安装完成之后就可以看到portainer界面了
在这里插入图片描述

  1. Ubuntu18.04 docker安装

    //拉取Ubuntu镜像(速度慢的话建议改成国内源或者科学上网)
    docker pull ubuntu:18.04
    

    安装完成后,即可在portainer管理界面中看到刚刚拉取的ubuntu 镜像image
    Ubuntu镜像

  2. ubunt 镜像运行

    // 把本地文件夹you_local_dir映射到Ubuntu中的文件夹ubunt_named_dir, LANG=C.UTF-8设置可以使得容器中能输出中文
    $ docker run -d -it -v you_local_dir:/ubunt_named_dir -w /ubunt_named_dir -p 4005:4005 --restart=always  --name ubuntu ubuntu:18.04  env LANG=C.UTF-8 /bin/bash
    

    执行完成之后,ubuntu容器就生成了,可以在portainer中进入Ubuntu console
    Ubuntu镜像

点击connect
connect

进入bash命令行

在这里插入图片描述

  1. ansible安装

    Ubuntu安装ansible
    打开Ubuntu console

    $ sudo apt update
    $ sudo apt install software-properties-common
    $ sudo add-apt-repository --yes --update ppa:ansible/ansible
    $ sudo apt install ansible
    
    // 安装完成后,直接输入ansible命令,如果能出来帮助信息就说明安装成功了
    $ ansible
    

    其他的系统可以参考官方教程

三:配置

anisble 默认的主机清单是 /etc/ansible/inventory文件, 为了方便我们后期修改维护主机清单, 我们可以指向主机文件到我们的本地磁盘的文件

  • 修改配置
    $ nano /etc/ansible/ansible.cfg
    //修改其中的inventory文件路径,如下图所示
    //文件的完整路径是Ubuntu的ubunt_named_dir路径,跟you_local_dir相对应
    

config

四:常用模块介绍

  1. ping模块

    • 作用:检查主机的连通性,类似于bash的ping命令,如果有主机掉线,会有返回提示fail的
    • 示例
      ping命令
  2. copy模块

    • 作用:复制文件/文件夹到主机列表中
    • 示例copy模块示例
    • Tips
      发现了有趣的现象,如果待复制的文件和目标机的文件一致,则不会显示changed。
    • copy命令也可以复制文件夹,只要把src改成路径就可以了(不指定文件名), 其他的参数可以查官方文件,这里就不一一介绍了
  3. command模块

    • 作用:远程批量命令
      command模块

    • Tips:不要在command模块中运行阻塞命令,否则ansible无法返回

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40603938

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值