我正在使用ansible expect为我的nessus创建一个用户(通过使用nessuscli)。expect应该回答以下几个问题(我添加了数字1-5)。我的期望停留在数字5。数字5的最后一个字母是“(用户可以设置空规则)”,然后是下一行(回车)。这就产生了问题,因为我不知道如何告诉expect有一个短语后面跟着下一行。我试过了\r \n都没成功!任何健康都是值得感谢的。
此外,您还可以在下面看到我的ansible代码。
谢谢
你可以在这里看到nessus cli propmt的截图:screenshot of nessucli propmpt
= Nessuscli添加用户提示符=
1-登录:
2-登录密码:
3-登录密码(再次):
4-您是否希望此用户成为Nessus‘系统管理员’用户(可以上传插件等)?(y/n) n: y
5-用户规则
nessusd有一个规则系统,允许您限制test有权测试的主机。例如,您可能希望他只能扫描自己的主机。
有关规则语法,请参阅《Nessus命令行参考
输入此用户的规则,并在完成后输入一个空行:(用户可以设置一个空规则)
===
我的Ansible Code:
名称: create nessus用户
expect:
command: /opt/nessus/sbin/nessuscli adduser
responses:
'Login: ': "{{nessus_username}}" # answer number 1
'Login password: ': "{{nessus_pass}}" # answer number 2
'Login password \(again\): ': "{{nessus_pass}}" # answer number 3
'\[n\]: ': 'y' # answer number 4
'set\)\\n ': "\n" # answer number 5 which doesnt work
'\[n\]: ': 'y' # answer the next propmpt (not in question and works)发布于 2020-01-28 02:50:18
经过多次修修补补,我做到了这一点:
- name: Add user
expect:
echo: yes
timeout: 5
command: "{{ nessus_cli_bin }} adduser"
responses:
(.*)Login(.*): "{{ nessus_user }}"
(.*)Login password(.*): "{{ nessus_pass }}"
(.*)Login password(.*): "{{ nessus_pass }}"
(.*)system administrator(.*): "y"
(.*)rules set(.*): "\n"
(.*)ok(.*): "y"https://stackoverflow.com/questions/54322358
复制相似问题