我是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启用rh-mariadb102'服务...'\“调用”
这似乎是Ansible不能很好地执行scl enable命令......或类似的东西。
有人在此问题之前就被困住了吗?
感谢您的帮助,感谢抱歉英语不好。
答案 0 :(得分:2)
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
下运行实际命令。