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

3Ds Max 精模obj模型导入ArcGIS Pro (二)要点补充

Study on PEGylation of lumiprobe and PEG linker - iodine-peg3-acid

Et la dégradation du modèle de génération de texte? Simctg vous donne la réponse

Label Contrastive Coding based Graph Neural Network for Graph Classification

为什么vscode用久了电脑速度变慢?

Basic components of STL

银行集体下架的智能投顾产品,为何成了“鸡肋”?

开源实习经验分享:openEuler软件包加固测试

MySQL advanced 3

PHP require/include differences
随机推荐
Lumiprobe 聚乙二醇化和 PEG 接头丨碘-PEG3-酸研究
A small step in code change and a big leap in thinking
Study on lumiprobe modified triphosphate biotin-11-utp
centos——开启/关闭oracle
ncat详细介绍(转载)
What bank card do you need to open an account online? In addition, is it safe to open an account online now?
Game 81 biweekly
Deflection lock / light lock / heavy lock lock is healthier. How to complete locking and unlocking
Adobe Photoshop (PS) - script development - remove file bloated script
Testing principle and precautions of biovendor rage ELISA Kit
Markdown笔记简明教程
银行集体下架的智能投顾产品,为何成了“鸡肋”?
ICLR'22 Spotlight | 怎样度量神经网络权重中的信息量?
Dynamic style binding --style and class
MySQL高级篇3
修改已经上线的小程序名称
WebRTC系列-网络传输之本地scoket端口
uniapp-生命周期/路由跳转
在手机炒股开户安全吗?
Et la dégradation du modèle de génération de texte? Simctg vous donne la réponse