首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible playbook在尝试执行mysql操作时被卡住

Ansible playbook在尝试执行mysql操作时被卡住
EN

Stack Overflow用户
提问于 2019-04-04 21:58:39
回答 1查看 981关注 0票数 0

我试图用ansible剧本来执行一个简单的"SHOW DATABASES;“命令,但在执行该命令时却卡住了。

我试过不同的方法

代码语言:javascript
复制
- hosts: servers
  become: true
  vars_prompt:
    - name: "db_passw"
      prompt: "DB root password?"
  tasks:
    - name: Configure Database
      shell: |
        mysql -u root -p {{ db_passw }} < ~/sql_query.sql

也是

代码语言:javascript
复制
- hosts: servers
  become: true
  vars_prompt:
    - name: "db_passw"
      prompt: "DB root password?"
  tasks:
    - name: Configure Database
      shell: |
        mysql -u root -p {{ db_passw }} -e "SHOW DATABASES;"

作为测试,我还尝试显式地设置密码

代码语言:javascript
复制
- hosts: servers
  become: true
  vars_prompt:
    - name: "db_passw"
      prompt: "DB root password?"
  tasks:
    - name: Configure Database
      shell: |
        mysql -u root -p <root_passw> -e "SHOW DATABASES;"

但它总是卡在同一点上。我尝试在远程机器shell中执行上面的mysql命令,它们工作起来没有任何问题。我还尝试在mysql的命令之前执行其他命令,它们正在被执行。

ansible和mysql之间有问题吗?

我知道Ansible有一个MySQL模块,但是它的功能太有限了。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-04-04 22:27:46

这对我很有效。下面的剧本

代码语言:javascript
复制
- hosts: dbserver
  tasks:
    - command: |
        mysql -e "SHOW DATABASES;"
      register: result
    - debug:
        var: result

提供:

代码语言:javascript
复制
TASK [debug] 
ok: [dbserver] => {
    "result": {
        "changed": true, 
        "cmd": [
            "mysql", 
            "-e", 
            "SHOW DATABASES;"
        ], 
        "delta": "0:00:00.010958", 
        "end": "2019-04-04 16:19:58.359100", 
        "failed": false, 
        "rc": 0, 
        "start": "2019-04-04 16:19:58.348142", 
        "stderr": "", 
        "stderr_lines": [], 
        "stdout": 
        ...

当“变成: true”时,不需要指定"-u根“。我还没有为根用户设置MySQL密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55517825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档