scl enable rh-mariadb102 bash在Ansible playbook中无法使用。

4

我是新来的stackoverflow用户...这似乎是一个分享知识、寻找解决方案并拥有非常有趣社区的好地方。

我在使用Ansible和"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" 命令,或者类似的情况。

有没有人之前遇到过这个问题?

感谢帮助,抱歉我的英文不好。


在每个步骤中向“你的小黄鸭”解释你正在做什么。 - techraf
1个回答

7
命令打开一个子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的子shell机制。现在我的多实例rh-mariadb102 playbook正在运行。 - CoutCout76

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接