首先输入ansible webservers -m copy -a "src=/etc/hosts dest=/tmp/mydemo owner=adm group=adm mode='0600'" //命令创建/tmp/mydemo/hosts文件
第一个repalce命令 :ansible webservers -m replace -a "path/tmp/mydemo/hosts regexp='db1' repalce='databaase1'"
报错提示:ERROR! this task 'replace' has extra params, which is only allowed in the following modules: ansible.legacy.shell, ansible.legacy.group_by, ansible.legacy.include_vars, set_fact, import_role, meta, ansible.legacy.win_shell, include_tasks, ansible.legacy.import_role, ansible.builtin.meta, ansible.legacy.add_host, group_by, ansible.builtin.command, ansible.builtin.script, script, ansible.builtin.add_host, shell, win_command, ansible.builtin.include_vars, ansible.builtin.include_role, raw, win_shell, include_vars, ansible.legacy.set_fact, ansible.builtin.include_tasks, ansible.legacy.include_role, ansible.builtin.set_fact, ansible.legacy.include_tasks, ansible.legacy.import_tasks, ansible.legacy.win_command, ansible.legacy.script, ansible.builtin.import_role, ansible.legacy.raw, ansible.builtin.shell, add_host, ansible.legacy.include, import_tasks, ansible.builtin.raw, include_role, include, ansible.legacy.meta, ansible.legacy.command, ansible.builtin.include, ansible.windows.win_command, ansible.windows.win_shell, command, ansible.builtin.import_tasks, ansible.builtin.group_by, ansible.builtin.win_shell, ansible.builtin.win_command
分析报错原因:path后边需要跟=号,所以命令语法格式错误,所以报错
解决方案:
然后输入正确的命令ansible webservers -m replace -a "path=/tmp/mydemo/hosts regexp='db1' repalce='database1'" //将/tmp/mydemo/hosts 文件的db1替换为database1
然后又出现报错"msg": "Unsupported parameters for (replace) module: repalce. Supported parameters include: unsafe_writes, encoding, mode, before, selevel, path (dest, destfile, name), setype, validate, group, replace, after, attributes (attr), serole, regexp, owner, seuser, backup."提示命令格式不正确
分析原因:拼写错误命令应该是replace
解决方案:
然后再输入ansible webservers -m replace -a "path=/tmp/mydemo/hosts regexp='db1' replace='database1'"命令,就解决了报错问题