jenkins+ansible使用
通过jenkins执行shell脚本调ansible-playbook可以方便的进行自动化管理部署
1、写一个简单的palybook
ansible主机清单可以写在hosts文件里也可以动态获取
--- - hosts: "{{ host }}" remote_user: root gather_facts: false tasks: - name: "{{name}}" shell: "pwd" - name: show time shell: "date" - name: 远程ip debug: var=ansible_ssh_host
2、创建jenkins 工程
配置参数用于后续通过shell传入ansible-palybook
添加构建步骤选择Execute shell
并写入执行playbook命令,使用到的参数即第一步配置的
cd /etc/ansible && ansible-playbook ops.yaml --extra-vars "{'host':'${host}', 'name':'${name}'}"
也可以写一个从cmdb或者数据库动态获取ansible主机清单脚本例如:1.py shell改为下面的即可以通过动态获取ansible清单并执行playbook了
cd /etc/ansible && ansible-playbook ops.yaml -i ./1.py --extra-vars "{'host':'${host}', 'name':'${name}'}"
保存后点击build
可以配置参数
host可以写服务器ip或者主机清单中的组名
开始构建然后查看任务,可以看到已经正常执行
3、通过jenkins接口执行job
通过python 调jenkins接口执行刚才的job

import jenkins jenkins_server_url = 'http://ip:port' user_id = 'name' api_token = 'token' job_name='playbook-shell' server = jenkins.Jenkins(jenkins_server_url,username=user_id,password=api_token) #print(server) server.build_job(name=job_name,parameters={'host': 'test','name':'test1'}) job_info=server.get_job_info(job_name) #print(job_info) lastbuildNumber=server.get_job_info(job_name)['lastBuild']['number'] result =server.get_build_info(job_name,lastbuildNumber)['result'] print(lastbuildNumber,result)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具