请求编写支持WebLogic/WebSphere选择安装的Ansible Playbook
可选安装WebLogic/WebSphere的Ansible Playbook实现
实现思路
通过自定义变量控制安装目标,结合条件判断执行对应组件的安装任务,灵活切换WebLogic或WebSphere的安装流程:
- 用
target_app变量指定要安装的组件,可选值为weblogic或websphere - 针对每个组件编写独立的安装任务块,通过
when条件判断触发执行 - 抽象安装介质路径、安装目录等参数为变量,适配不同环境
完整Playbook代码
--- - name: 按需安装WebLogic或WebSphere hosts: all vars: # 核心控制变量:指定安装weblogic或websphere target_app: "weblogic" # 安装基础目录,可根据组件调整 install_base_dir: "/opt/apps" # WebLogic相关变量 weblogic_installer: "/data/installers/wls12214.jar" weblogic_response_file: "/data/configs/weblogic_silent.rsp" # WebSphere相关变量 websphere_installer: "/data/installers/was90.bin" websphere_response_file: "/data/configs/was_silent.xml" tasks: # WebLogic安装任务块 - name: 执行WebLogic静默安装 block: - name: 创建WebLogic安装目录 file: path: "{{ install_base_dir }}/weblogic" state: directory mode: '0755' owner: oracle group: oinstall - name: 运行WebLogic安装程序 command: "java -jar {{ weblogic_installer }} -silent -response {{ weblogic_response_file }}" args: creates: "{{ install_base_dir }}/weblogic/wlserver" become: yes become_user: oracle when: target_app == "weblogic" # WebSphere安装任务块 - name: 执行WebSphere静默安装 block: - name: 创建WebSphere安装目录 file: path: "{{ install_base_dir }}/websphere" state: directory mode: '0755' owner: wasadmin group: wasgrp - name: 运行WebSphere安装程序 command: "{{ websphere_installer }} -options {{ websphere_response_file }} -silent" args: creates: "{{ install_base_dir }}/websphere/AppServer" become: yes become_user: wasadmin when: target_app == "websphere"
使用说明
配置变量
- 修改
target_app的值为weblogic或websphere,指定要安装的组件 - 根据实际环境更新安装介质路径、响应文件路径、安装目录、用户组等参数
- 提前准备静默安装响应文件:
- WebLogic:编写
.rsp文件,配置安装路径、组件选择、是否创建域等参数 - WebSphere:编写
.xml文件,配置安装路径、功能组件、许可协议等参数
- WebLogic:编写
- 修改
执行Playbook
- 直接修改Playbook内的
target_app变量后执行:ansible-playbook -i inventory.ini install_app.yml - 或通过命令行动态传递变量(无需修改Playbook):
# 安装WebSphere ansible-playbook -i inventory.ini install_app.yml -e "target_app=websphere" # 安装WebLogic ansible-playbook -i inventory.ini install_app.yml -e "target_app=weblogic"
- 直接修改Playbook内的
注意事项
- 目标服务器需提前安装对应版本的Java环境(WebLogic和WebSphere对Java版本有要求,可添加前置任务自动安装)
- 安装介质需提前上传至目标服务器或通过共享存储访问
- 执行安装的用户需拥有安装目录的读写权限,示例中使用
become切换到对应业务用户
内容的提问来源于stack exchange,提问作者Ansible_Coder
相关产品推荐
相关产品推荐

