ansible - download java jdk - ERROR: multiple actions specified in task: 'command'
ansible - download java jdk - ERROR: multiple actions specified in task: 'command'
Ansible:1.9.2(因此使用 wget 而不是 get_url)。
Linux 中央操作系统 6.5
运行 以下命令并收到以下错误消息:
$ ansible-playbook site.yml ${sudo_user_opts} -i hosts -u builduser --private-key ${DEPLOYER_KEY_FILE} --extra-vars "svr_type=${server_type} deploy_environment=${DEPLOY_ENVIRONMENT} ansible_user=${ANSIBLE_USER}
ERROR: multiple actions specified in task: 'command' and 'Download Java/JDK Versions'
知道我错过了什么吗。
我创建的角色 "java" 具有 default/main.yml:
$ cat roles/java/defaults/main.yml
---
java_versions:
java7_60:
version: 1.7.60
group_path: com/oracle/jdk
classifier: linux-x64
ext: tar.gz
dist_file: "jdk-{{item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }}"
dist_url: "{{ artifactory_url }}/{{ item.value.group_path }}/{{ item.value.version }}/{{ dist_file }}"
java7_67:
version: 1.7.67
group_path: com/oracle/jdk
classifier: linux-x64
ext: tar.gz
dist_file: "jdk-{{item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }}"
dist_url: "{{ artifactory_url }}/{{ item.value.group_path }}/{{ item.value.version }}/{{ dist_file }}"
java8_45:
version: 1.8.45
group_path: com/oracle/jdk
classifier: linux-x64
ext: tar.gz
dist_file: "jdk-{{item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }}"
dist_url: "{{ artifactory_url }}/{{ item.value.group_path }}/{{ item.value.version }}/{{ dist_file }}"
角色 some_common 有一个 defaults\main.yml 为:
---
# common vars
artifactory_url: http://artifactory.company.com:9050/virtual-repos
instance_home: "~"
tools_dir: "{{ instance_home }}/tools"
slaves_dir: "{{ instance_home }}/slaves"
build_user: 'builduser'
build_group: 'build'
common_download_dir: "/tmp"
角色内的任务:java/tasks/main.yml 是:
$ 猫角色/java/tasks/main.yml
---
- debug: msg="Downloading and installing Java versions - instance_home {{ instance_home }}"
- name: Download Java/JDK Versions
debug: msg="Java {{ item.key }} is (jdk-{{ item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }})"
command: wget -q "{{ item.value.dist_url }}"
chdir="{{ common_download_dir }}"
creates="{{ common_download_dir }}/{{ item.value.dist_file }}"
with_dict: "{{ java_versions }}"
每个任务只能有 1 个动作。 ansible 内置模块 debug
算作一个动作,因此您必须将其作为单独的任务,如下所示:
- debug: msg="Java {{ item.key }} is (jdk-{{ item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }})"
with_dict: "{{ java_versions }}"
- name: Download Java/JDK Versions
with_dict: "{{ java_versions }}"
command: wget -q "{{ item.value.dist_url }}"
chdir="{{ common_download_dir }}"
creates="{{ common_download_dir }}/{{ item.value.dist_file }}"
Ansible:1.9.2(因此使用 wget 而不是 get_url)。 Linux 中央操作系统 6.5
运行 以下命令并收到以下错误消息:
$ ansible-playbook site.yml ${sudo_user_opts} -i hosts -u builduser --private-key ${DEPLOYER_KEY_FILE} --extra-vars "svr_type=${server_type} deploy_environment=${DEPLOY_ENVIRONMENT} ansible_user=${ANSIBLE_USER}
ERROR: multiple actions specified in task: 'command' and 'Download Java/JDK Versions'
知道我错过了什么吗。
我创建的角色 "java" 具有 default/main.yml:
$ cat roles/java/defaults/main.yml
---
java_versions:
java7_60:
version: 1.7.60
group_path: com/oracle/jdk
classifier: linux-x64
ext: tar.gz
dist_file: "jdk-{{item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }}"
dist_url: "{{ artifactory_url }}/{{ item.value.group_path }}/{{ item.value.version }}/{{ dist_file }}"
java7_67:
version: 1.7.67
group_path: com/oracle/jdk
classifier: linux-x64
ext: tar.gz
dist_file: "jdk-{{item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }}"
dist_url: "{{ artifactory_url }}/{{ item.value.group_path }}/{{ item.value.version }}/{{ dist_file }}"
java8_45:
version: 1.8.45
group_path: com/oracle/jdk
classifier: linux-x64
ext: tar.gz
dist_file: "jdk-{{item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }}"
dist_url: "{{ artifactory_url }}/{{ item.value.group_path }}/{{ item.value.version }}/{{ dist_file }}"
角色 some_common 有一个 defaults\main.yml 为:
---
# common vars
artifactory_url: http://artifactory.company.com:9050/virtual-repos
instance_home: "~"
tools_dir: "{{ instance_home }}/tools"
slaves_dir: "{{ instance_home }}/slaves"
build_user: 'builduser'
build_group: 'build'
common_download_dir: "/tmp"
角色内的任务:java/tasks/main.yml 是:
$ 猫角色/java/tasks/main.yml
---
- debug: msg="Downloading and installing Java versions - instance_home {{ instance_home }}"
- name: Download Java/JDK Versions
debug: msg="Java {{ item.key }} is (jdk-{{ item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }})"
command: wget -q "{{ item.value.dist_url }}"
chdir="{{ common_download_dir }}"
creates="{{ common_download_dir }}/{{ item.value.dist_file }}"
with_dict: "{{ java_versions }}"
每个任务只能有 1 个动作。 ansible 内置模块 debug
算作一个动作,因此您必须将其作为单独的任务,如下所示:
- debug: msg="Java {{ item.key }} is (jdk-{{ item.value.version }}-{{ item.value.classifier }}-{{ item.value.ext }})"
with_dict: "{{ java_versions }}"
- name: Download Java/JDK Versions
with_dict: "{{ java_versions }}"
command: wget -q "{{ item.value.dist_url }}"
chdir="{{ common_download_dir }}"
creates="{{ common_download_dir }}/{{ item.value.dist_file }}"