我对Ansible还是个新手,我一直致力于编写一个Ansible角色来自动化Jenkins的增量升级过程。此过程的一部分涉及创建一个循环,该循环在示例上安装的Jenkins的当前版本早于目标版本的条件下执行。
# Install the incremental upgraded version of Jenkins
- name: upgrade and restart jenkins on each iterative upgrade
yum:
name: "jenkins-{{ item.jenkins_target_version }}"
state: present
when: (jenkins_current_version | float) < "{{ item.jenkins_target_version_filtered }}"
loop: "{{ packages }}"
notify: restart jenkins
when: (jenkins_current_version | float) < jenkins_target_filtered
循环应该循环通过包列表,如下所示
packages:
- { jenkins_target_version: 2.176-1.1, jenkins_target_version_filtered: 2.176 }
- { jenkins_target_version: 2.190-1.1, jenkins_target_version_filtered: 2.190 }
- { jenkins_target_version: 2.204-1.1, jenkins_target_version_filtered: 2.204 }
- { jenkins_target_version: 2.222-1.1, jenkins_target_version_filtered: 2.222 }
- { jenkins_target_version: 2.235-1.1, jenkins_target_version_filtered: 2.235 }
- { jenkins_target_version: 2.249-1.1, jenkins_target_version_filtered: 2.249 }
- { jenkins_target_version: 2.263-1.1, jenkins_target_version_filtered: 2.263 }
- { jenkins_target_version: 2.277-1.1, jenkins_target_version_filtered: 2.277 }
- { jenkins_target_version: 2.289-1.1, jenkins_target_version_filtered: 2.289 }
- { jenkins_target_version: 2.303-1.1, jenkins_target_version_filtered: 2.303 }
- { jenkins_target_version: 2.319-1.1, jenkins_target_version_filtered: 2.319 }
- { jenkins_target_version: 2.332-1.1, jenkins_target_version_filtered: 2.332 }
- { jenkins_target_version: 2.343-1.1, jenkins_target_version_filtered: 2.343 }
- { jenkins_target_version: 2.346-1.1, jenkins_target_version_filtered: 2.346 }
并且仅当版本比当前安装的版本更新时才在目标系统上安装该版本。循环似乎工作正常,并在目标示例上安装了Jenkins的升级,问题是每当Jenkins升级后,我都想执行一系列处理程序任务。
处理程序是存储在处理程序文件夹中的文件中的一系列任务,用于重新启动服务并检查一切是否已备份并正常运行(以及其他任务)。问题在于,每次迭代升级完成后,处理程序任务都不会被调用和执行。我正在寻求关于如何才能实现这一点的建议,提前谢谢。
1条答案
按热度按时间wdebmtf21#
问:“我想执行一系列处理程序任务。”
答:使用关键字LISTEN可以选择更多任务。例如,给定处理程序
攻略
赠送
备注: