我可以在Linux服务器上使用命令行参数运行脚本,
例如:./install.sh -n -I <IP address of the server>
上面的命令能够在服务器上安装脚本。
当我尝试使用shell模块通过ansible(版本2.5)剧本进行操作时,它给了我一个参数错误。
- name: Running the script
shell: yes | ./fullinstall
期望模块已尝试。
--my-arg1=IP address
答案 0 :(得分:1)
- shell: "./install.sh -n -I"
args:
chdir: somedir/
creates: somelog.txt
您可以查看here作为示例。
您还可以将 install.sh 文件作为模板放置在服务器上。然后,您可以在Jinja2中根据需要设置变量。
- name: Template install.sh
template:
src: /install.sh.j2
dest: /tmp/install.sh
- shell: "cd /tmp/ ; ./install.sh
您的install.sh.j2包含:
IP adres: {{ my_ip }}
并在命令行上使用以下命令设置变量:
ansible-playbook -e my_ip="192.168.0.1"
答案 1 :(得分:0)
- name: run script
command: /path/to/install.sh -n -I {{ ip_addrress }}
ansible-playbook -e ip_address="192.168.3.9" play.yml
如果要交互式地输入IP地址,请使用prompt
模块。