当前位置:网站首页>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:08:00 【weixin_888988】
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.
边栏推荐
猜你喜欢

Spatiotemporal data mining: an overview

Lumiprobe nucleic acid quantitative qudye dsDNA br detection kit

报错:Internal error XFS_WANT_CORRUPTED_GOTO at line 1635 of file fs/xfs/libxfs/xfs_alloc.c.

Qiao NPMS: search for NPM packages

Based on the open source stream batch integrated data synchronization engine Chunjun data restore DDL parsing module actual combat sharing

Icml2022 | utility theory of sequential decision making

Label Contrastive Coding based Graph Neural Network for Graph Classification

Lumiprobe细胞生物学丨DiA,亲脂性示踪剂说明书

企业保护 API 安全迫在眉睫

【微服务~Nacos】Nacos之配置中心
随机推荐
【微服务~Nacos】Nacos之配置中心
SQL Server 提取字符串中的纯数字
Move blog to CSDN
ArcMap|用字段计算器对不同类别的id赋值
为什么vscode用久了电脑速度变慢?
Basic concepts of tree
CentOS - enable / disable Oracle
Learning summary
vncserver: Failed command ‘/etc/X11/Xvnc-session‘: 256!
FreeRTOS记录(九、一个裸机工程转FreeRTOS的实例)
What are database OLAP and OLTP? Same and different? Applicable scenarios
Lumiprobe核酸定量丨QuDye dsDNA BR 检测试剂盒
Software engineering UML drawing
Go learning notes
A small step in code change and a big leap in thinking
Based on the open source stream batch integrated data synchronization engine Chunjun data restore DDL parsing module actual combat sharing
《大厂面试》之JVM篇21问与答
MySQL introduction, detailed installation steps and usage | dark horse programmer
变异系数法matlab代码[通俗易懂]
Lumiprobe细胞生物学丨DiA,亲脂性示踪剂说明书