如果我使用 with_together,如何跳过列表中的空项目?
看下面的代码:
- name: get data_files list
shell: ls -l data_files | awk -F " " {'print $9'}
register: csv_file_list
- debug: var=csv_file_list
- name: get table name list
shell: ls -l data_files/ | awk -F " " {'print $9'} | sed -e "s/.csv//g" | sed -e "s/-/./g"
register: table_list
- debug: var=table_list
- name: copy table from csv to demo db
shell: psql -U postgres -d demo -c "\copy {{ item.1 }} from /home/ubuntu/data_files/{{ item.0 }} DELIMITER ',' …Run Code Online (Sandbox Code Playgroud) 如何在运行时更改实例类型
我已经运行了t2.small实例,我使用t2.medium实例调用实例并运行它,但运行t2.small的实例
ec2:
key_name: "{{key_name}}"
region: "{{aws_region}}"
state: running
instance_type: t2.medium
instance_ids: "{{ item.id }}"
aws_access_key: "{{aws_access_key_id}}"
aws_secret_key: "{{aws_secret_access_key}}"
Run Code Online (Sandbox Code Playgroud)
似乎ansible忽略了instance_type
例如:
我有变量{{ami_redhat_7_2}}我想要使用它
vars:
OsType: redhat
OsVersion: '7_2'
tasks:
- debug: 'msg="{{ ami_{{OsType}}_{{ OsVersion }} }}"'
Run Code Online (Sandbox Code Playgroud)
我得到了错误:
fatal: [localhost]: FAILED! => {
"failed": true,
"msg": "template error while templating string: expected token 'end of print statement', got '{'. String: {{ ami_{{ OsType }}_{{ OsVersion }} }}"
}
Run Code Online (Sandbox Code Playgroud)