ansible -i /etc/ansible/hosts weiyifan -m shell "mkdir -p /home/weiyifan/1/2/3/4/" 为什么我这行代码还是输出了ansible: error: unrecognized arguments: mkdir -p /home/weiyifan/1/2/3/4/ 这个错误
时间: 2023-08-01 11:13:39 浏览: 58
根据你提供的命令和错误信息,我注意到问题可能出在`weiyifan`参数上。在ansible命令中,主机清单文件应该是`-i`选项的参数,而不是执行命令的目标主机。尝试将命令修改为以下形式:
```
ansible -i /etc/ansible/hosts all -m shell -a "mkdir -p /home/weiyifan/1/2/3/4/"
```
这个命令中的`all`表示对主机清单文件中的所有主机执行任务。`-m shell`指定了要执行的模块为shell模块。`-a`选项后面是要在远程主机上执行的具体命令。
请确保在命令中指定了正确的主机清单文件路径`/etc/ansible/hosts`,并替换为你实际使用的文件路径。
相关问题
利用ansible -i /etc/auto-deploy/ansible_hosts all -m shell -a怎么批量备份/etc/ssh/sshd_config
使用Ansible进行批量备份/etc/ssh/sshd_config的步骤如下:
1. 确保已经安装了Ansible,并且已经配置好了主机清单文件(ansible_hosts)。
2. 在终端中执行以下命令:
```
ansible -i /etc/auto-deploy/ansible_hosts all -m shell -a "cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak"
```
这个命令会在所有主机上执行shell模块,将/etc/ssh/sshd_config文件备份为/etc/ssh/sshd_config.bak。
注意:在执行该命令之前,请确保你对Ansible和主机清单文件的配置都是正确的,并且你有足够的权限来执行备份操作。
81 21 * * * ansible-playbook /etc/cml.yaml
这是一个 crontab 的定时任务,表示每天的 21 点 81 分(实际上是下一天的 9 点 21 分)执行 Ansible Playbook `/etc/cml.yaml`。
具体解释如下:
- `81` 表示分钟,因为 crontab 的分钟数范围是 0-59,所以这个数字实际上是无效的,会被忽略。
- `21` 表示小时,也就是每天的 21 点。
- `*` 表示每个月份都执行,即不限制月份。
- `*` 表示每个星期都执行,即不限制星期。
- `ansible-playbook /etc/cml.yaml` 是要执行的命令,即在每天的 21 点 81 分(实际上是下一天的 9 点 21 分)执行 Ansible Playbook `/etc/cml.yaml`。
需要注意的是,crontab 的时间是以系统时间为准,而且时区也可能会影响到定时任务的执行时间。因此,在设置定时任务时需要考虑清楚时区和时间的差异。