Мне нужно скачать файл с веб-URL и накачать его на удаленный сервер, который не имеет доступа inte rnet.
- Rundeck загружает файл в локальный путь wget, затем pu sh файл на целевой сервер, используя S SH
- Rundeck для запуска сценария на удаленном узле, чтобы накачать файл, скопированный с помощью вышеуказанного шага, и выполнить другие действия по ведению домашнего хозяйства (это bash сценарий оболочки)
У меня очень мало знаний об использовании Rundeck.
Шаг первый , я справился. Файл загружается в rundeck с URL-адреса и отправляется на целевой сервер.
[ -d "/apps/support/dump/CNRLS2" ] && rm -r "/apps/support/dump/CNRLS2"
echo "Creating workspace folder"
mkdir -p /apps/support/dump/CNRLS2
cd /apps/support/dump/CNRLS2
export ArtifactURL="https://artifact.dummy.dummyurl.com/artifactory/generic-release/XRSL/CNRLS/develop/113/RLAWESOME-1379.tar.gz"
echo "Downloading Artifact at $ArtifactURL from Artifactory"
wget -q $ArtifactURL --no-check-certificate
export packageName=$(echo "${ArtifactURL##*/}")
echo $packageName
scp -r /apps/support/dump/CNRLS2/*.* yurtdxx67a@11.28.293.88:/xmodules/fixes/migreq/
Это подтолкнуло мой пакет к пути к удаленному серверу /xmodules/fixes/migreq/
Сейчас Шаг второй
Я запускаю встроенный ansible как следующий шаг для распаковки на узле назначения. ansible отправляется на узел назначения и вызывает распаковку. sh, Я не могу передать значение packageName с предыдущего шага в строку ansible.
---
- hosts: "{{host_name}}"
remote_user: "{{run_user}}"
tasks:
- name: Unpack the package
shell: sh /home/yurtdxx67a/mig/unpack.sh "{{$packageName}}"
Any Идея будет большой помощью для меня.
Редактировать: 12 февраля-2020
В моем случае заменяемые переменные находятся в пределах "ansible -extra-param"
<command>
<step-plugin type='com.batix.rundeck.plugins.AnsiblePlaybookInlineWorkflowStep'>
<configuration>
<entry key='ansible-become' value='false' />
<entry key='ansible-disable-limit' value='false' />
<entry key='ansible-extra-param' value='-i /tmp/workspace/CNRLS/hosts -e host_name=myhost -e run_user=${data.runUser} -e package_name=${data.packageName} --limit ${data.nodeIP} --ssh-extra-args='-o StrictHostKeyChecking=no' ' />
<entry key='ansible-playbook-inline' value='--- - hosts: "{{host_name}}" remote_user: "{{run_user}}" tasks: - name: Check for connectivity shell: sh /home/yurtdxx67a/mig/unpack.sh "{{package_name}}" ' />
</configuration>
</step-plugin>
</command>
Я хочу использовать эти переменные.
run_user = $ {data.runUser} -e имя_пакета = $ {data.packageName} --limit $ {data.nodeIP}
эти переменные имеют значение. когда я отображаю echo $ {data.packageName}; echo $ {data.runUser}; echo $ {data.nodeIP};
Я не уверен, как использовать эти переменные как часть аргумента "ansible -extra-param '
Еще раз спасибо
Спасибо. Dwija