2016-04-13 3 views
3

Я использую Ansible для обеспечения наших серверов, я установил Jenkins 2.0, но он запускается с конфигурацией запуска при открытии веб-интерфейса. Как я могу сделать это с помощью Ansible или shell или jenkins-cli. CentOS 7, Ansible 2.0.1.0. Так,Конфигурирование Jenkins 2.0 с Ansible

  1. Установка Дженкинс 2.0 из http://pkg.jenkins-ci.org/redhat-rc/jenkins-2.0-1.1.noarch.rpm оборотов в минуту.
  2. Установите java с yum.
  3. Служба запуска дженкинсов.
  4. Открыть 192.168.46.10:8080, который открывает Дженкинс.
  5. В веб-интерфейсе, в котором добавлен начальный пароль администратора.
  6. В веб-интерфейсе выберите и установите плагины.
  7. В веб-интерфейсе пользователь создает новый пользователь.

5,6,7 баллов - это все конфигурационные параметры нового Jenkins. Я не знаю, как мы можем установить его автоматически.

Edit 1:

1,2,3 пункта уже сделан, просто я не разделяю, потому что это не нужно, потому что мне нужен только совет, как я могу настроить Дженкинс. Но теперь я добавляю это к своему вопросу.

--- 
- 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 
+0

И что вы делали до сих пор? Мы не собираемся делать это за вас. –

+0

@TymoteuszPaul Никто не просит вас сделать это для меня, потому что 1,2,3 балла уже сделаны. Я просто не знаю, как мне управлять конфигурацией Jenkins из cli. Если вы мне это скажете, мне это достаточно, потому что я могу использовать оболочный модуль.Я использовал Jenkins из веб-интерфейса, что плохо, когда я хочу установить его автоматически для удаленного хоста. – PumpkinSeed

+0

@TymoteuszPaul Я редактировал вопрос, теперь вы можете прокомментировать. – PumpkinSeed

ответ

3

Я нашел решение, это отключает мастер установки, после этого я смог изменить конфигурационные файлы.

- 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 
+0

Я вижу подобную проблему, но эта опция '-Djenkins.install.runSetupWizard = false' не полностью ее разрешает. Он пропускает мастер установки, но когда я пытаюсь открыть пользовательский интерфейс Jenkins или взаимодействовать с ним из 'jenkins-cli.jar', он все еще запрашивает имя пользователя и пароль. У вас была эта проблема? – laffoyb

+0

У нас есть пользователи и конфиги, которые мы копируем в папку конфигурации Jenkins, и это решает проблему. @laffoyb – PumpkinSeed

+0

Возможно, это поможет вам @laffoyb https://wiki.jenkins-ci.org/display/JENKINS/Disable+security – BDuelz

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 
+3

Просто хотел добавить, что '/ etc/default/jenkins' для вариантов Debian/Ubuntu, тогда как '/ etc/sysconfig/jenkins' для вариантов CentOS/RedHat. – Amit

5

Вы можете создать сценарий инициализации (в заводной) в добавьте учетную запись администратора. Сценарий должен присутствовать в $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() 
} 

Как использовать в анзибль пьес:

- 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 reposiotry.

0

В Ubuntu 16.04 с Jenkins installed using apt-get, это работает:

- 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 

Вы все равно должны установить безопасность, хотя!