这似乎有效,但它是否脆弱?我希望files命令中的所有者和组设置为$scope.closePopover = function() {
for (var d in $scope.data) {
if ($scope.data[d].tempChecked == true) {
$scope.data[d].checked = true;
} else {
$scope.data[d].checked = false;
}
}
$scope.popover.hide();
};
。我希望能够使用someguy
,但这不起作用。
这是一个显示我的意思的示例剧本。
{{ remote_user }}
这不起作用:
---
- hosts: foobar
remote_user: someguy
tasks:
- name: configure /usr/src/foo
file:
dest: /usr/src/foo
state: directory
owner: {{ ansible_ssh_user }}
group: {{ ansible_ssh_user }}
recurse: yes
sudo: yes
一个或多个未定义的变量:' remote_user'未定义
答案 0 :(得分:4)
还有{{ ansible_ssh_user }}
,它包含远程用户名,似乎可以无问题地访问。 See also this answer
答案 1 :(得分:-2)
在命令中指定变量时,必须将它们括在引号中 - 例如:
file: dest=/usr/src/foo state=directory owner={{ remote_user }} group={{ remote_user }} recurse=yes
应该是:
file: dest=/usr/src/foo state=directory owner="{{ remote_user }}" group="{{ remote_user }}" recurse=yes
我很惊讶你的第一个例子在没有引号的情况下起作用。
此外,您的'remote_user'在该示例中实际上不必是'someguy',因为通常使用sudo: yes
足以让文件模块正确设置指定的所有者和组。
答案 2 :(得分:-2)
您可以通过添加vars:option
来解决此问题---
- hosts: foobar
vars:
remote_user: someguy
tasks:
- name: configure /usr/src/foo
file:
dest: /usr/src/foo
state: directory
owner: {{ remote_user }}
group: {{ remote_user }}
recurse: yes
sudo: yes
答案 3 :(得分:-3)
您可以尝试编写剧本,如:
---
- set_fact: remote_user="someguy"
- hosts: foobar
tasks:
- name: configure /usr/src/foo
file: dest=/usr/src/foo state=directory owner={{ remote_user }} group={{ remote_user }} recurse=yes
sudo: yes