簡體   English   中英

詹金斯和流浪者有非常奇怪的情況

[英]Jenkins and Vagrant there is very strange situation

我有一個最新版本的Jenkis(在Tomcat下運行)以及Vagrant和LXC容器。 Tomcat在jenkins用戶下運行。 我有下一個Vagrantfile

Vagrant.configure(2) do |config|
  config.vm.box = "arjenvrielink/xenial64-lxc"
  config.vm.provider :lxc do |lxc|
    lxc.backingstore = 'dir'
  end
end

所以,當我通過跑從bash的LXC容器vagrant up ,一切都很好。 vagrant ssh工作。 但是如果我通過詹金斯的工作來運行它,我會得到這個

Started by user admin
[EnvInject] - Loading node environment variables.
Building in workspace /home/jenkins/workspaces/server
[server] $ /bin/bash /opt/tomcat/temp/jenkins204809790857124992.sh
Bringing machine 'default' up with 'lxc' provider...
==> default: Importing base box 'arjenvrielink/xenial64-lxc'...
==> default: Checking if box 'arjenvrielink/xenial64-lxc' is up to date...
==> default: Setting up mount entries for shared folders...
    default: /vagrant => /home/jenkins/workspaces/server/vagrant
==> default: Starting container...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 10.0.3.29:22
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
Build was aborted
Aborted by admin
Finished: ABORTED

Jenkins作業僅包含以下命令

!#/bin/bash
cd vagrant
vagrant up

在調查過程中,我發現下一個不同之處。 然后我從bash那里跑了vagrant ssh-config

Host default
  HostName 10.0.3.212
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/jenkins/workspaces/server/vagrant/.vagrant/machines/default/lxc/private_key
  IdentitiesOnly yes
  LogLevel FATAL

但是后來我從詹金斯的工作中逃脫了

Host default
  HostName 10.0.3.217
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/jenkins/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

我做錯了什么?

編輯:

arjenvrielink/xenial64-lxc一個官方 arjenvrielink/xenial64-lxc所以我仍然可以肯定您的問題是無源的不安全密鑰替換機制,但是我的解決方案無法為您提供幫助。


arjenvrielink/xenial64-lxc是自定義框嗎?

如果是這樣,請確保放任不安全密鑰,以便任何新用戶(包括詹金斯)都可以訪問該框,因為首先使用不安全密鑰將流浪者連接到該框,然后創建一個新的。

如果要在框中包含自己的密鑰,請確保將以下行添加到Vagrantfile中:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = File.expand_path("<path of the key relative to Vagrantfile>", __FILE__)
end

需要注意的是,您必須在無所事事的環境將要運行的任何地方提供密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM