4

我正在使用 Ansible 来配置我们的服务器,我安装了 Jenkins 2.0,但是当我打开 Web UI 时,它就变成了启动配置。我如何使用 Ansible 或 shell 或 jenkins-cli 来做到这一点。CentOS 7,Ansible 2.0.1.0。所以,

  1. 从http://pkg.jenkins-ci.org/redhat-rc/jenkins-2.0-1.1.noarch.rpm rpm安装 Jenkins 2.0 。
  2. 用 yum 安装 java。
  3. 服务启动詹金斯。
  4. 打开 192.168.46.10:8080,它正在打开 Jenkins。
  5. 在 Web UI 中添加初始管理员密码。
  6. 在 Web UI 中选择并安装插件。
  7. 在 Web UI 中创建一个新的管理员用户。

5,6,7点都是新Jenkins的启动配置。我不知道我们如何自动安装它。

编辑1:

1,2,3点已经讲完了,只是因为没有必要所以没有分享,因为我只需要一个建议如何配置Jenkins。但现在我将它添加到我的问题中。

---
- name: Jenkins - install | Install java
  yum: name=java state=installed

- name: Jenkins - install | Install Jenkins 2.0
  yum: pkg=http://pkg.jenkins-ci.org/redhat-rc/jenkins-2.0-1.1.noarch.rpm state=installed

- name: Jenkins - install | Start and enable Jenkins 2.0
  service: name=jenkins state=started enabled=yes
4

4 回答 4

8

您可以创建一个初始化脚本(在 groovy 中)来添加一个管理员帐户。脚本应该存在于$JENKINS_HOME/init.groovy.d/*.groovy. 有关更多详细信息,请参阅Jenkins CI Wiki

这是一个例子。

security.groovy.j2文件:

#!groovy
import java.util.logging.Level
import java.util.logging.Logger
import hudson.security.*
import jenkins.model.*

def instance = Jenkins.getInstance()
def logger = Logger.getLogger(Jenkins.class.getName())

logger.log(Level.INFO, "Ensuring that local user '{{ jenkins.admin_username }}' is created.")

if (!instance.isUseSecurity()) {
    logger.log(Level.INFO, "Creating local admin user '{{ jenkins.admin_username }}'.")

    def strategy = new FullControlOnceLoggedInAuthorizationStrategy()
    strategy.setAllowAnonymousRead(false)

    def hudsonRealm = new HudsonPrivateSecurityRealm(false)
    hudsonRealm.createAccount("{{ jenkins.admin_username }}", "{{ jenkins.admin_password }}")

    instance.setSecurityRealm(hudsonRealm)
    instance.setAuthorizationStrategy(strategy)
    instance.save()
}

如何在 Ansible 剧本中使用:

- name: Create initialization scripts directory
  file: path={{ jenkins.home }}/init.groovy.d
        state=directory
        owner=jenkins
        group=jenkins
        mode=0775

- name: Add initialization script to setup basic security
  template: src=security.groovy.j2
            dest={{ jenkins.home }}/init.groovy.d/security.groovy

我受到这个GitHub存储库的启发。

于 2016-12-12T16:38:28.343 回答
4

我找到了一个解决方案,这是关闭设置向导,之后我可以更改配置文件。

- name: Jenkins - configure | Turn off Jenkins setup wizard
  lineinfile: dest=/etc/sysconfig/jenkins regexp='^JENKINS_JAVA_OPTIONS=' line='JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false"'
  notify: restart jenkins
于 2016-04-14T16:00:37.800 回答
2

上面的解决方案对我不起作用,但给了我提示,这是在 Ubuntu 上对我有用的解决方案:

- name: Configure JVM Arguments
  lineinfile:
    dest: /etc/default/jenkins
    regexp: '^JAVA_ARGS='
    line: 'JAVA_ARGS="-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false"'
  notify:
    - Restart Jenkins
于 2016-09-13T14:52:36.093 回答
0

在使用 apt-get 安装 Jenkins 的Ubuntu 16.04 上,此方法有效:

- name: "Turn off Jenkins setup wizard"
  lineinfile:
      dest: /etc/init.d/jenkins
      regexp: '^JAVA_ARGS='
      line: 'JAVA_ARGS="-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false"'
      insertbefore: '^DAEMON_ARGS='
  notify: restart jenkins

- name: restart jenkins
  service: name=jenkins state=restarted

不过,您仍然必须设置安全性!

于 2017-04-14T09:15:03.710 回答