vars:
alias_name: '{{ alias }}'
upload_file: '{{ upload }}'
pack1: /home/ansible
tasks:
- name: Copy file with owner and permissions
copy:
src: '{{ upload_file }}'
dest: '{{ pack1 }}'
owner: ansible
group: ansible
mode: '0777'
- name: return motd to registered var
shell: "ls -Art | tail -n 1"
args:
chdir: '{{ pack1 }}'
register: mymotd
- name: Import SSL certificate from google.com to a given cacerts keystore
java_cert:
cert_path: '{{ pack1 }}/{{ mymotd.stdout }}'
cert_alias: '{{ alias_name }}'
keystore_path: '/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/lib/security/cacerts'
keystore_pass: changeit
state: present
错误:
FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"_raw_params": "ls -Art | tail -n 1",
"chdir": "/home/ansible",
"register": "mymotd",
"warn": true
}
},
"msg": "Unsupported parameters for (command) module: register Supported parameters include: _raw_params, _uses_shell, argv, chdir, creates, executable, removes, stdin, stdin_add_newline, strip_empty_ends, warn"
}
PLAY RECAP ***********************************************************************************************************************************
172.16.217.129 : ok=2 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
还有其他方法可以建议我做同样的事情吗?我的主要目的是将命令输出传递给变量,并稍后使用该变量附加到证书路径中。
答案 0 :(得分:1)
您需要像下面一样纠正return motd to registered var
任务的缩进。还可以使用shell
模块而不是command
来使用“ <”,““>”,“ |”,“;”之类的操作。和“&”。
请按照正确的YAML syntax格式化可播放的剧本。
- name: return motd to registered var
shell: "ls -Art | tail -n 1"
args:
chdir: '{{ pack1 }}'
register: mymotd