我正在尝试使用 Map<String, String> parameters = new HashMap<>();
if (StringUtils.isNoneBlank(vNumber)) {
parameters.put("number", vNumber);
}
if (StringUtils.isNoneBlank(vOrder)) {
parameters.put("order", vOrder);
}
if (StringUtils.isNoneBlank(vDateFrom)) {
parameters.put("dataFrom", vDateFrom);
}
if (StringUtils.isNoneBlank(vDateTo)) {
parameters.put("dateTo", vDateTo);
}
StringBuilder sqlQuery = new StringBuilder("select * from myTable ");
if (parameters.size() > 0) {
sqlQuery.append(" where ");
for (String paramName : parameters.keySet()) {
sqlQuery.append(paramName).append("=").append(parameters.get(paramName));
}
}
//this will return your query
sqlQuery.toString();
来检查Ansible
是否已启用(设置为强制执行),如果没有,请启用它。只有在SELinux
被禁用时,才能调用play
启用SELinux
。
SELinux
看起来像这样:
playbook
当我运行此任务时,任务- hosts: all
# root should execute this.
remote_user: root
become: yes
tasks:
# Check if SELinux is enabled.
- name: check if selinux is enabled
tags: selinuxCheck
register: selinuxCheckOut
command: getenforce
- debug: var=selinuxCheckOut.stdout_lines
- name: enable selinux if not enabled already
tags: enableSELinux
selinux: policy=targeted state=enforcing
when: selinuxCheckOut.stdout_lines == "Enforcing"
- debug: var=enableSELinuxOut.stdout_lines
失败,原因是“条件检查失败”。输出是:
enableSELinux
我的问题:
1.这是否是根据另一场比赛的输出来执行比赛的正确方法?
2.我如何让它工作?
答案 0 :(得分:1)
你的剧本是对的。但是stdout_lines
是一个列表。您必须比较该列表中的第一个元素。试试这个:
when: selinuxCheckOut.stdout_lines[0] == "Enforcing"