获取错误"无法获得CSRF"尝试使用ANSIBLE

时间:2017-02-14 06:59:00

标签: jenkins ansible jenkins-plugins csrf

我正在使用ANSIBLE在CENTOS上安装jenkins。 安装工作正常,但是当涉及到安装插件的任务时,我收到以下错误。

fatal: [jenkins]: FAILED! => {"changed": false, "details": "Request failed: <urlopen error [Errno 111] Connection refused>", "failed": true, "msg": "Cannot get CSRF"}

代码如下。

- name: Install jenkins 
rpm_key:
state: present
key: https://pkg.jenkins.io/redhat-stable/jenkins.io.key

- name: Add Repository for jenkins
  yum_repository:
    name: jenkins
    description: Repo needed for automatic installation of Jenkins
    baseurl: http://pkg.jenkins.io/redhat-stable
    gpgcheck: yes
    gpgkey: https://pkg.jenkins.io/redhat-stable/jenkins.io.key

    #Pre requisite: add key and repo
- name: Install jenkins
  yum:
    name: jenkins
    state: present

#Start/Stop jenkins
- name: Start jenkins service
  service:
    name: jenkins
    state: started

#Start jenkins on startup
- name: Start jenkins on boot
  shell: chkconfig jenkins on

- name: Install build-pipeline
  jenkins_plugin:
    name: build-pipeline-plugin
    notify:
      - "restart jenkins-service"

2 个答案:

答案 0 :(得分:3)

你似乎没有等到启动jenkins和尝试安装插件之间。 jenkins_plugin需要安装正在运行的jenkins,因此您应该在Start jenkins serviceInstall build-pipeline之间等待:

- name: Wait for Jenkins to start up
  uri:
    url: http://localhost:8080
    status_code: 200
    timeout: 5
  register: jenkins_service_status
  # Keep trying for 5 mins in 5 sec intervals
  retries: 60
  delay: 5
  until: >
     'status' in jenkins_service_status and
     jenkins_service_status['status'] == 200

答案 1 :(得分:2)

为了跳过启动向导,我发现了这个(当场谷歌搜索)

- name: Jenkins Skip startUp for MI
  lineinfile:
    dest=/etc/sysconfig/jenkins
    regexp='^JENKINS_JAVA_OPTIONS='
    line='JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false"'
  register: result_skip_startup_wizard