4

我是 stackoverflow 的新手……这似乎是一个与非常有趣的社区分享知识和寻找解决方案的好地方。

我对 Ansble 和“scl”“mysql_install_dir”命令有疑问。

当我手动执行“scl enable rh-mariadb102 bash && mysql_install_dir ...”时,当我在服务器的控制台中正确执行时,它可以完美地工作。

但是当我尝试在 Ansible 上构建任务时:

- name: "Execute mysql_install_db to prepare DB"
  shell: |
    scl enable rh-mariadb102 bash
    mysql_install_db --datadir=/data/{{ item.instance_name }}/db/mariadb102
  become_user: root
  with_items: "{{ vars_list }}"

它返回错误:

"使用\"scl enable rh-mariadb102 'service ...'\"调用"

这似乎 Ansible 不能很好地执行 scl enable 命令......或类似的东西。

以前有人遇到过这个问题吗?

感谢您的帮助,抱歉英语不好。

4

1 回答 1

6

scl命令打开一个子shell,然后再次关闭它。像这样的东西应该工作:

- name: "Execute mysql_install_db to prepare DB"
  shell: |
    scl enable rh-mariadb102 -- mysql_install_db --datadir=/data/{{ item.instance_name }}/db/mariadb102
  become_user: root
  with_items: "{{ vars_list }}"

也就是说,在scl enable.

于 2018-06-15T11:59:39.037 回答