【问题标题】:scl enable rh-mariadb102 bash doesn't work with Ansible playbookscl enable rh-mariadb102 bash 不适用于 Ansible 剧本
【发布时间】:2018-06-15 09:33:26
【问题描述】:

我是 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 命令...或类似的东西。

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

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

【问题讨论】:

标签: ansible mariadb software-collections


【解决方案1】:

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下运行实际命令。

【讨论】:

  • 感谢您的帮助,这解决了我的问题!我试图用 && ... 或任何其他方式执行命令 scl 和 mysql_install_db = 不起作用。我并不完全了解 scl 的子壳机制。现在我的多实例 rh-mariadb102 playbook 正在运行。
猜你喜欢
  • 2022-11-18
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 2022-10-24
相关资源
最近更新 更多