Почему динамическая переменная не анализируется правильно, когда вводится в пользовательский конвейер как плагин кода? - PullRequest
0 голосов
/ 30 декабря 2018

В моей компании я запускаю конвейер как проект кода, в котором мой Jenkinsfile получает динамический IP из сценария оболочки и внедряет его в переменную среды PrivateIP.Следующий шаг вызывает пользовательский плагин (разработанный внутри компании), который принимает аргумент «серверы» в качестве IP-адресов, хотя, предположительно, не анализирует его правильно, поскольку вывод ошибки указывает на неразрешимый хост.

IВызвали переменную PrivateIP сразу после шага плагина, и он определенно выдает правильное значение.

Плагин работает, если ему дано жесткое значение для IP, но не работает, если ему дано что-то динамическое.Встроенные модули, такие как dir, не создают подобных проблем.Мне не удалось заполучить разработчика плагина, чтобы сообщить о проблеме, и я не получил ни одного ответа на мою проблему.Это типично для пользовательских плагинов?Я видел некоторую документацию в документации разработчика плагинов , которая предполагает, что в плагинах конвейера соблюдается только начальная стадия среды, в противном случае для получения контекстной среды требуется @StepContextParameter.

stage('Provision') {
      environment {
          PrivateIP = """${sh(
             returnStdout: true,
             script: '${WORKSPACE}/cicd/parse-ip.sh'
          )}"""
      }

      steps {
        echo "Calling Playbook. PrivateIP: ${PrivateIP}"

        customPluginName env: 'AWS',
        os: 'Linux',
        parameter: '',
        password: '',
        playbook: 'provision.yaml',
        servers: PrivateIP,
        gitBranch: '{my branch}',
        gitUrl: '{URL}',
        username: '{custom user}'
      }
    }

Я ожидаю, что переменная будет соблюдена и успешно выполнит Ansible Playbook.

Ошибка

>>> fatal: [ansible_ssh_user = {customпользователь}]: недоступно!=> {"change": false, "msg": "Не удалось подключиться к хосту через ssh: ssh: Не удалось разрешить имя хоста ansible_ssh_user = {custom user} : Имя или служба неизвестны \ r \n "," unreachable ": true}

Если это на самом деле поведение пользовательских подключаемых модулей по умолчанию (не обязательно ошибка), каковы хорошие способы обхода?

...