Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] Install default plugins (suggested plugins) #1

Open
patsevanton opened this issue Mar 24, 2022 · 0 comments
Open

Comments

@patsevanton
Copy link

Hello! Thanks for Jenkins role!

I use this role and add ansible code for Install default plugins (suggested plugins).
May be add Install default plugins (suggested plugins) to role? (May be not all steps)

- hosts: jenkins
  become: yes
  roles:
    - role: robertdebock.java
    - role: robertdebock.jenkins
  post_tasks:
    - name: get initialAdminPassword
      shell: cat /var/lib/jenkins/secrets/initialAdminPassword
      register: adminpwd

    - name: unlock and add admin user
      jenkins_script:
        script: |
          import jenkins.model.*
          import hudson.security.*
          def instance = Jenkins.getInstance()
          def hudsonRealm = new HudsonPrivateSecurityRealm(false)
          hudsonRealm.createAccount('jenkins', '${user_pwd}')
          instance.setSecurityRealm(hudsonRealm)
          def strategy = new FullControlOnceLoggedInAuthorizationStrategy()
          strategy.setAllowAnonymousRead(false)
          instance.setAuthorizationStrategy(strategy)
          instance.save()
        args:
          user_pwd: "{{ adminpwd }}"
        user: admin
        password: "{{ adminpwd.stdout }}"

    - name: complete setup wizard
      jenkins_script:
        script: |
          import static jenkins.model.Jenkins.instance as jenkins
          import jenkins.install.InstallState
          if (!jenkins.installState.isSetupComplete()) {
            InstallState.INITIAL_SETUP_COMPLETED.initializeState()
          }
        user: admin
        password: "{{ adminpwd.stdout }}"

    - name: Install default plugins when choice 'install suggested plugins'
      jenkins_plugin:
        name: "{{ item }}"
        url: http://localhost:8080
        url_username: "admin"
        url_password: "{{ adminpwd['stdout'] }}"
      register: plugin_result
      until: plugin_result is success
      loop:
        - cloudbees-folder
        - antisamy-markup-formatter
        - build-timeout
        - credentials-binding
        - timestamper
        - ws-cleanup
        - ant
        - gradle
        - workflow-aggregator
        - github-branch-source
        - pipeline-github-lib
        - pipeline-stage-view
        - git
        - ssh-slaves
        - matrix-auth
        - pam-auth
        - ldap
        - email-ext
        - mailer

    - name: Restart Jenkins
      ansible.builtin.service:
        name: jenkins
        state: restarted

    - name: Check Jenkins work (Get Jenkins Crumb).
      ansible.builtin.uri:
        force_basic_auth: yes
        url_username:     "admin"
        url_password:     "{{ adminpwd.stdout }}"
        url:              http://localhost:8080/crumbIssuer/api/json
        return_content:   yes
      retries:            10
      delay:              5

    - name: Print adminpwd var
      debug:
        var: adminpwd['stdout']

    - name: Print ansible_ssh_host var
      debug:
        var: ansible_ssh_host
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant