jenkins - create node using API(python-jenkins)

使用场景

曾几何时,OPS需要针对Jenkins添加一批上线机器,配置公钥免密码登录,配置jenkins Slave节点,命名规则 …
本篇博客,记录下使用API去 半自动 部署 Jenkins Slave的方法.

install package

pip install python-jenkins

a small test

import os,sys,re
import jenkins

ip=sys.argv[1]
name=sys.argv[2]
mypass="XXX"
server = jenkins.Jenkins('http://XXX:8080', username='XXX', password="%s"%mypass)
version = server.get_version()
print version

use create_node method to create the node

server.create_node('name', numExecutors=8, nodeDescription=None, remoteFS='XXX', labels='XXX', exclusive='False', launcher='hudson.plugins.sshslaves.SSHLauncher', launcher_params={'port':22, 'credentialsId':'49c2cd7a-c4f7-444b-80ef-7353ebded08f', 'host':'XXX'})

PS:
1. credentials的获取可以直接看 jenkins配置 credentials.xml; 或者直接在配置node的截面,直接查看 web page source code, 里面也会有.
2. launcher 的方法也可以在 web page source code里面发现的.
3. 配置参数也可以参考 server.get_node_config来获得
4. 另外,之前一直困惑的一个问题,就是如果node down该如何报警, 我记得又一个plugin,但是目前又多了一种方法,就是使用 server.get_nodes()来进行获得.

你可能感兴趣的:(Jenkins,ops)