使用ansible期望创建nessus用户(nessuscli)

时间:2019-01-23 07:53:37

标签: python automation ansible pexpect

我正在使用ansible期望为我的nessus创建一个用户(通过使用nessuscli)。期望应该回答以下几个问题(我添加了数字1-5)。我的期望卡在数字5上。数字5的最后一个字母是“(用户可以设置空规则集)”,然后是下一行(回车)。由于我不知道如何告诉您期望有一个短语后接下一行,因此出现了问题。我尝试了\ r \ n,但没有一个起作用!任何治疗都值得赞赏。

此外,您还可以在下面看到我的ansible代码。

谢谢

您可以在此处查看nessus cli propmt的屏幕截图: screenshot of nessucli propmpt

============ Nessuscli adduser提示=========

1-登录名:

2-登录密码:

3-再次输入登录密码:

4-您是否希望该用户成为Nessus的“系统管理员”用户(可以上传插件等)? (y / n)[n]:y

5-用户规则

nessusd具有规则系统,可用于限制主机 该测试有权进行测试。例如,您可能想要 他只能扫描自己的主机。

有关规则语法,请参阅《 Nessus命令行参考》

输入该用户的规则,并在完成后输入空白行: (用户可以设置一个空规则)

================================================ ====

我的Ansible代码:

名称:创建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)

1 个答案:

答案 0 :(得分:0)

经过大量的修改,对我来说是成功的

  - 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"