要禁用root
的登录,我想将其外壳设置为nologin
的路径,该路径由命令确定。
命令模块正确注册了变量:
- name: Get nologin path
command: which nologin
register: nologin
- debug:
var: nologin
调试信息:
ok: [192.168.178.25] => {
"nologin": {
"changed": true,
"cmd": [
"which",
"nologin"
],
"delta": "0:00:00.001612",
"end": "2019-08-26 11:23:41.764847",
"failed": false,
"rc": 0,
"start": "2019-08-26 11:23:41.763235",
"stderr": "",
"stderr_lines": [],
"stdout": "/usr/sbin/nologin",
"stdout_lines": [
"/usr/sbin/nologin"
]
}
}
但是当我使用用户模块时,它将注册变量作为字符串:
- name: Disable root
user:
name: root
shell: nologin.stdout
state: present
结果/etc/passwd
:
$ cat /etc/passwd
root:x:0:0:root:/root:nologin.stdout
感谢您的帮助!
答案 0 :(得分:2)
这是一个变量,要使用它,您需要按照yAML的要求将jinja2模板class Node{
public:
virtual ~Node() {}
virtual double evaluate();
};
class NumNode: public Node {
private:
double number;
public:
double evaluate();
NumNode(int);
};
class BinaryOpNode: public Node{
private:
std::unique_ptr<Node> left;
std::unique_ptr<Node> right;
public:
BinaryOpNode(std::unique_ptr<Node> a, std::unique_ptr<Node> b)
: left{std::move(a)}
, right{std::move(b)}
{
}
double evaluate() {
return binaryOperator(left->evaluate(), right->evaluate());
}
virtual double binaryOperator(double a, double b) = 0;
};
class AddOpNode : public BinaryOpNode {
public:
using BinaryOpNode::BinaryOpNode;
double binaryOperator(double a, double b) { return a + b; }
};
int main(){
AddOpNode n {
std::make_unique<NumNode>(2),
std::make_unique<NumNode>(3)
};
cout << n.evaluate() << endl;
return 0;
}
放在{{ }}
内:
" "
参考: