ansible入门安装以及基于Jenkins搭建自动发布系统
来源:互联网 发布:php获取访问者mac地址 编辑:程序博客网 时间:2024/06/05 14:32
1、 ansible是什么
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
² 连接插件connectionplugins:负责和被监控端实现通信;
² host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
² 各种模块核心模块、command模块、自定义模块;
² 借助于插件完成记录日志邮件等功能;
² playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
ansible的优势:
² 不需要安装agent,通过ssh,省掉安装agent的事;
² ansible在master不需要启动进程;
ansible的缺点:
² 通过ssh链接需要认证和加密的过程,有些慢。
ansible是使用ssh链接协议远程机器集成了其它模块的的运维管理工具。
2、 ansible在centos的安装
安装python插件,python版本最好是2.6+,目前咱们的服务器安装都是2.6+的。
需要安装的python模块有python-simplejson python-paramiko python-ecdsa python-MarkupSafe python-yaml python-jinjapython-pycrypto python-setuptools
2.1编译安装:
setuptools模块安装
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz
tarxvzf setuptools-7.0.tar.gz
cdsetuptools-7.0
pythonsetup.py install
pycrypto模块安装
wget https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz
tarxvzf pycrypto-2.6.1.tar.gz
cdpycrypto-2.6.1
pythonsetup.py install
PyYAML模块安装
wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz
tarxvzf yaml-0.1.5.tar.gz
cd yaml-0.1.5
./configure--prefix=/usr/local
make--jobs=`grep processor /proc/cpuinfo | wc -l` #多核工作模式
makeinstall
wget https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz
tarxvzf PyYAML-3.11.tar.gz
cdPyYAML-3.11
pythonsetup.py install
Jinja2模块安装
wget https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz
tarxvzf MarkupSafe-0.9.3.tar.gz
cdMarkupSafe-0.9.3
pythonsetup.py install
wget https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz
tarxvzf Jinja2-2.7.3.tar.gz
cdJinja2-2.7.3
pythonsetup.py install
paramiko模块安装
wget https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz
tarxvzf ecdsa-0.11.tar.gz
cdecdsa-0.11
pythonsetup.py install
wget https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz
tarxvzf paramiko-1.15.1.tar.gz
cdparamiko-1.15.1
pythonsetup.py install
simplejson模块安装
wget https://pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz
tarxvzf simplejson-3.6.5.tar.gz
cdsimplejson-3.6.5
python setup.py install
[编译ansible]
首先找安装源:https://github.com/ansible/ansible/releases
wget https://codeload.github.com/ansible/ansible/tar.gz/v2.2.0.0-0.2.rc2
tar zxvfansible-2.2.0.0-0.2.rc2.tar.gz
cd ansible-2.2.0.0-0.2.rc2
pythonsetup.py install
进入ansible的安装目录 ./bin/ansible –version校验安装是否成功
2.2Yum方式安装python模块:
yum install -y python-simplejson python-paramiko python-ecdsa python-MarkupSafe python-yaml python-jinja python-pycryptopython-setuptools
yuminstall ansible
如果提示没有此安装包,可以加入EPEL扩展包:
yuminstall epel-release
yuminstall ansible
安装完成直接输入ansible –version校验是否安装成功。
尽量用yum安装,效率高,不容易出错。
3、 ansible怎么用
3.1文件配置
安装完成后需要对ansible进行配置。Yum安装完成后默认会在/etc下创建ansible文件夹,里边包含ansible.cfg,hosts,roles配置文件。编译安装的话需要手动创建或者从安装目录的sample里拷过来。
在hosts文件中加入slave的ip地址,并进行分组。
设置用于节点鉴权的SSH密钥。在Ansible服务端生成密钥,并且复制公钥到节点中。
² 在服务端使用ssh-keygen命令生成ssh的公钥和私钥。
² 使用ssh-copy-id命令来复制Ansible公钥到节点中。
3.2 ansible的简单使用
基本命令:
测试连接登录是否成功:ansible -m ping 'qa'
查看节点运行时间:ansible -m command -a "uptime" 'qa'
查看目标主机内核:ansible -m command -a "uname -r"'qa'
使用模块(-m):
command 模块不支持 shell 变量,也不支持管道等,如果需要使用这些功能,可以借助模块
ansible -m shell -a 'echo $TERM' 'qa'
ansible qa -m shell -a "ps -ef |grep tomcat"
4、 集成jenkins搭建简单的自动化部署系统
在jenkins的post steps之后,配置Run only if build succeeds,然后执行以下脚本实现自动化部署。
#定义常量
WORKSPACE=`pwd`
WAR_DIR=${WORKSPACE}/${PROJ_NAME}-web/target
JETTY_DIR=/data/www/java/work/${PROJ_NAME}-jetty
REMOTE_DEPLOY_DIR=${JETTY_DIR}/webapps
INVENTORY_FILE=/tmp/${PROJ_NAME}-inventory-${JOB_NAME##*/}
INVENTORY_TEMPLATE=/opt/jenkins/default_inventory_template
cd $WAR_DIR
#准备Inventory
cat ${INVENTORY_TEMPLATE} >${INVENTORY_FILE}
echo ${DEPLOY_HOST} >>${INVENTORY_FILE}
#删除远程服务器部署文件
ansible -i ${INVENTORY_FILE} all-m raw -a "rm -rf ${REMOTE_DEPLOY_DIR}/${PROJ_NAME}-web.war"
#COPY文件到远程服务器部署目录
ansible -i ${INVENTORY_FILE} all-m copy -a "src=${WAR_DIR}/${PROJ_NAME}-web.wardest=${REMOTE_DEPLOY_DIR}/"
#重启jetty
ansible -i ${INVENTORY_FILE} all-m shell -a "${JETTY_DIR}/bin/jetty.sh restart"
- ansible入门安装以及基于Jenkins搭建自动发布系统
- 使用ansible搭建自动发布系统
- 基于git maven jenkins的自动构建发布系统三
- 利用jenkins搭建发布系统
- jenkins+ansible+maven自动部署
- jenkins基于ansible持续集成
- win10+jenkins+git+自动发布(搭建+构建)
- 基于Jenkins的自动构建系统开发
- 基于Jenkins的自动构建系统开发
- 基于Jenkins自动构建系统开发
- 基于Jenkins的自动构建系统开发
- 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统
- 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统
- Ansible 安装以及常用命令
- 自动化工具Ansible:基于Jenkins+Ansible+GitLab的部署实践
- 基于python实现jenkins自动发布代码平台
- Jenkins搭建.NET自动编译测试与发布环境
- Jenkins搭建.NET自动编译测试与发布环境
- activity作为dialog样式弹出,finish后还显示在页面
- api上传图片
- mybatis中两个配置文件的写法
- 数学问题——求回文素数
- sql: where条件中AND、OR运算符的组合使用
- ansible入门安装以及基于Jenkins搭建自动发布系统
- 、简单实现百度地图实时定位功能
- Node.js学习之文件监控
- 关于unity中枚举enum的一些小见解
- distinct和group_concat
- 数据结构---队列---循环队列---顺序存储
- 【Python】Python数据分析一般概念01
- 重写,覆盖,继承,重载的分析
- CSDN 添加源代码附件