如何在执行命令时控制用户输入并向我询问 例如:
sudo apt-get install mariadb-server
当你在ubuntu中运行这个命令时,它要求你输入mysql root root的新密码然后再次要求输入密码进行确认。 我如何将变量例如mariadbpass传递给此命令,因为每次ansible运行此挂起并失败,所以我必须登录到服务器并手动运行
dpkg --configure -a
输入提示密码及其确认。
谢谢
答案 0 :(得分:3)
以下是解决方案: 在你的剧本中安装mariadb 10任务之前添加这个
- name: debconf asking for password
debconf:
name: maria-db-10.0
question: "{{ item }}"
vtype: password
value: "{{ mariadb_root_password }}"
with_items:
- mysql-server/root_password
- mysql-server/root_password_again
答案 1 :(得分:2)
这不是一个安问问题,而是一个真正的问题。我建议你看一下this post并将其中一些与你的剧本联系起来,做你需要的。
在这种情况下最容易使用的是here string
- name: Test Deploy
hosts: [my-cluster-of-servers]
tasks:
- name: Go Into Docker Container And Run Multiple Commands
docker:
name: [container-name]
image: [image-ive-created-container-with-on-server]
state: present
command: docker exec -it [container-name] bash