b0u*_*fr0 2 shell command line ansible
我正在尝试更新一些 .sql 文件,并且在命令行中使用 sed 取得了成功,但我无法从 ansible 让它正常工作。
该命令类似于:
我的目标是,以取代TYPE与ENGINE他们年纪大了.SQL转储。除非有办法直接在 MySQL 中处理 - 我无法导入它们。
错误“任务执行期间发生异常。要查看完整的回溯,请使用 -vvv。错误是:OSError: [Errno 2] No such file or directory: '/home/jesse/Desktop/playbooks/cd /tmp/Ratings_DB'
似乎我没有以某种方式重定向到正确的目录。
小智 8
最好使用 Replace 或 lineinfile 模块而不是通用 sed 。
例如。
- replace:
path: /etc/hosts
regexp: '(\s+)old\.host\.name(\s+.*)?$'
replace: '\1new.host.name\2'
backup: yes
Run Code Online (Sandbox Code Playgroud)
您不必制作'cd',您可以直接引用文件名。此外,最好使用 'become=true' 而不是使用 sudo:
---
- name: pb
hosts: localhost
become: true
tasks:
- name: replace in sql files
shell: sed -i 's/TYPE/ENGINE/' /tmp/*.sql
Run Code Online (Sandbox Code Playgroud)
运行剧本:
$ ansible-playbook pb.yml -e "ansible_sudo_pass=1234"
| 归档时间: |
|
| 查看次数: |
14982 次 |
| 最近记录: |