当前位置:网站首页>How to run jenkins build, in multiple servers with ssh-key
How to run jenkins build, in multiple servers with ssh-key
2022-06-30 21:10:00 【weixin_ eight hundred and eighty-eight thousand nine hundred an】
Trying to figure out how can I run a Jenkins build on multiple servers with my ssh-key connection.
For now I used SSH remote host plugin, but this plugin is good for 1,2,3,4.. servers and not for 100+.
I googleit and I found that many people offer a solution to use Ansible but i have no experience in ansible so if anyone has some examples for this process to run build on multiple servers with ansible or with any other way, I'll be happy to hear.
I'm running Jenkins-Master on windows and Jenkins-Slave on Linux(ubuntu).
This is a pretty simplified example, but for a freestyle job, I think it breaks down into the following steps:
install ansible on the jenkins-agent.
pip install ansibleorapt install ansibleLoad your ssh key into Jenkins credentials store. I assume here that you use the credential store plugin (but you could also load it into an ssh-agent, or use some other method to expose the key on the jenkins-agents.)
i) Manage jenkins -> Manage Credentials
ii) add credentials -> "SSH username with private key"
iii) paste in they key and give it a name like "SSH_KEY_ANSIBLE"
- Create a new Jenkins freestyle job and add credentials (SSH_KEY_ANSIBLE)
i) Go to Build Environment section of job configuration
ii) check "Use secret text(s) or file(s)"
iii) add binding item "SSH User Private Key" to SSH_KEY_ANSIBLE
iv) set the Username variable to SSH_USER, set the key file to SSH_KEY
- add your list of hosts to your ansible inventory file on jenkins-agent: /etc/ansible/hosts
[jenkins_job_hosts] myhost1 myhost2 ... myhost101
- Create a playbook on the jenkins agent, for example
/home/jenkins/ansible/my_first_playbook.yml:
--- - hosts: jenkins_job_hosts tasks: - command: date - debug: msg: add other ansible tasks here....
- Go to build section in jenkins job.
i) add an "Execute shell" build step.
ii) use the following to run the ansible against all your hosts
ansible-playbook --private-key ${SSH_KEY} \
-u ${SSH_USER} \
-i /etc/ansible/hosts \
/home/jenkins/ansible/my_first_playbook.yml
Extra steps
You can put your inventory file and playbook into git, and check them out into the job
Also you can look at pipeline jobs in groovy syntax in a Jenkinsfile, which simplifies managing the job.
边栏推荐
- 毕业五年,想当初若没有入行测试,我是否还会如这般焦虑
- 雷达数据处理技术
- ArcMap|用字段计算器对不同类别的id赋值
- What about degradation of text generation model? Simctg tells you the answer
- Peking University ACM problems 1004:financial management
- uniapp怎么上传二进制图片
- 【数字IC应届生职业规划】Chap.1 IC行业产业链概述及代表企业大厂汇总
- Peking University ACM problems 1001:exposition
- 学习总结
- 针对美国国家安全局“酸狐狸”漏洞攻击武器平台的分析与应对方案建议
猜你喜欢
随机推荐
How do I get the largest K massive data
Deflection lock / light lock / heavy lock lock is healthier. How to complete locking and unlocking
阿里kube-eventer mysql sink简单使用记录
在线教育项目用户登录和注册
Lumiprobe细胞生物学丨DiA,亲脂性示踪剂说明书
【等级测评师】等级测评师怎么报名?多少分及格?
Qiao NPMS: search for NPM packages
遇到“word在试图打开文件时遇到错误”怎么办?
个人开发的渗透测试工具Satania
uniapp-路由uni-simple-router
变异系数法matlab代码[通俗易懂]
ICML2022 | 序列决策的效用理论
19.04 distributor
SqlServer 获取字符串中数字,中文及字符部分数据
mysql-批量更新
银行集体下架的智能投顾产品,为何成了“鸡肋”?
No "history of blood and tears" in home office | community essay solicitation
Lumiprobe 聚乙二醇化和 PEG 接头丨碘-PEG3-酸研究
CentOS - enable / disable Oracle
Based on the open source stream batch integrated data synchronization engine Chunjun data restore DDL parsing module actual combat sharing









