我想用 Ansible 运行安装程序脚本。安装程序脚本会提示一些响应,并且需要以 root 权限运行。
这是我的 Ansible 任务的本质:
- expect:
become: yes
become_method: sudo
command: "installer.bin"
echo: yes
responses:
"Choose the appropriate installation or upgrade option.": "2"
"Where should the software be installed?": "/opt/newsoftware/"
Run Code Online (Sandbox Code Playgroud)
我原以为这会奏效,但我收到错误
fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: become_method"}
Run Code Online (Sandbox Code Playgroud)
如果我省略“become_method”,则会出现此错误:
fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: become"}
Run Code Online (Sandbox Code Playgroud)
我的 Ansible 是 2.1.1.0 版
我正在尝试使用此处的 docker-volume-netshare驱动程序创建docker 卷:https : //github.com/ContainX/docker-volume-netshare
顺序应该是这样的:
docker volume create -d cifs <some_options>
docker run -v <the_volume> <other_docker_options>
Run Code Online (Sandbox Code Playgroud)
我可以让它在某种程度上工作,但对于我的生活,我无法让它通过我需要的所有选项。
与其试图重述无数不同的失败模式,我更愿意陈述我的目标。在下面, docker-volume-netshare 将执行一个mount -t cifs ...
命令。这可以在verbose
设置为时的日志中看到true
。
这是我试图获取的挂载命令。我可以在那里获得用户名和密码,但只有在使用 .netrc 文件时,我发现无法将 uid 和 gid 输入命令。
mount -t cifs -o username=myusername,password=mypasswd,uid=500,gid=499,rw //myserver.example.net/mysharename /the_mount_point/
Run Code Online (Sandbox Code Playgroud)
所以我正在寻找的是通过 docker-volume-netshare 传递这些选项的权威语法。