Jenkins整合Ansible
Ansible入门基础
Ansible和saltstack、PSSH、puppet目前市面上一些其它的项目管理工具有很大的不同,它的设计初衷就是为了更方便、快捷的进行配置管理。它易于安装和使用、语法也非常简单易学。你可以用Ansible将平常复杂的配置工作变得简单,变得更加标准化更容易控制。100、1000台批量部署;
Ansible只需要在一台普通的服务器上运行即可,不需要在被管控的服务器上安装客户端。因为它是基于SSH的,Linux服务器离不开SSH,所以Ansible不需要为配置工作添加额外的支持。 你可以通过命令行来使用Ansible,运行Ansible的服务器这里俗称“管理节点”;通过Ansible进行管理的服务器俗称“受控节点”。
Ansible是一款极为灵活的开源工具套件,能够大大简化Unix管理员的自动化配置管理与流程控制方式。它利用推送方式对客户系统加以配置,这样所有工作都可在主服务器端完成。其命令行机制同样非常强大,允许大家利用商业许可Web UI实现授权管理与配置。
Ansible优点:
轻量级,不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可,采用SSH协议。
批量任务执行可以写成脚本,而且不用分发到远程就可以执行。
使用python编写的,维护更简单。
支持sudo普通用户命令。
![]()
Ansible安装配置
Ansible 能够安装到 Linux、BSD、Mac OS X 等平台,Python 版本最低要求为2.6。
CentOS直接使用yum安装即可,安装之前先安装epel源码。
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
然后执行命令: yum install ansible -y 安装即可。
![]()
安装完后正式来使用,ansible默认配置文件路径为:
/etc/ansible:
![]()
常见的命令参数有:
Ansible中的临时命令的执行是通过Ad-Hoc来完成,能够快速执行,而且不需要保存执行的命令,例如:
默认hosts内容可以配置分组,我们可以定义各种ip及规则,内容如下:
然后配置SSH-KEYGEN免秘钥登录
![]()
手动批量运行命令或者脚本:(警告信息可以忽略)
![]()
最好在Jenkins 工程里面进行如下配置即可:
cp /root/.jenkins/workspace/www.jfedu.net/target/edu.war /var/www/html/download/
ansible www_jfedu -m copy -a "src=/data/sh/auto_deploy.sh dest=/tmp/"
ansible www_jfedu -m shell -a "cd /tmp ;/bin/bash auto_deploy.sh"
最终跟之前部署的Shell方式效果一样:
![]()