【发布时间】:2019-04-16 13:22:37
【问题描述】:
我已经编写了 ansible playbook 来在我们的生产虚拟机中安装 cloudbees jenkins。第一次运行 ansible playbook 时,它成功了,但 jenkins 没有启动并运行,第二次运行相同的 playbook jenkins 启动并运行良好。
我已手动下载 jenkins.war(2.138.x) 并移至 VM。第一次运行ansible playbook时成功执行,但jenkins没有启动并运行,所以我进入vm并检查了jenkins主目录。它只显示一个文件夹,即 WAR,但是在第二次运行相同的剧本时,jenkins 正在运行,我再次登录到 Vm 并检查了 jenkins 主目录。现在我可以看到主目录中的所有配置文件。我已经检查了我观察到的日志,这是我第一次在运行 jvm 行时没有使用。但是在第二次运行时,我观察到了一些与 jvm 相关的行。但是我已经安装了 java,并且我也设置了环境变量。
- hosts: all
become: true
become_user: user1
tasks:
- name: installing the jenkins
shell: nohup java -DJENKINS_HOME=/user1/jenkins -jar /user1/jenkins.war &
我只希望在运行 Ansible-playbook 时首次安装 cloudbees jenkins
【问题讨论】:
-
在没有ansible的情况下手动运行jenkins会有什么结果?
-
你不应该使用 nohup 来运行 jenkins。你应该用过这些包。似乎 nohup 退出(如果退出)没有被 ansible 捕获,因为它是在后台运行的。如果您可以重新创建获取 nohup.out 内容并将其发布在此处。
-
@Nelson,当手动运行 jenkins 时,一切都很完美,这意味着 jenkins 启动并运行并且 nohup。 out也在VM中创建
-
VM java.lang.Error 初始化期间发生错误:属性初始化:无法确定当前工作目录。在 java.lang.System.initProperties(Native Method) 在 java.lang.System.initializeSystemClass(System.java:1166)
-
这些错误是指当时执行命令的目录不存在。您能否使用更新的剧本更新描述,即使用带有 args 模块的命令。您还应该指定 java 二进制文件的完整路径