有时,ansible不做你想做的事.增加详细程度并没有帮助.例如,我现在正在尝试启动coturn服务器,它附带了systemdOS 上的init脚本(Debian Jessie).Ansible认为它在运行,但事实并非如此.我如何看待引擎盖下发生的事情?执行哪些命令,以及输出/退出代码是什么?
考虑我是否想快速检查一下.不需要连接到主机的东西(检查ansible本身的工作原理,包括处理程序或其他东西).或者localhost会这样做.我可能会放弃这个,但是手册页说:
-i PATH, - inventory = PATH
清单的PATH,默认为/ etc/ansible/hosts.或者,您可以使用以逗号分隔的主机列表或具有尾随逗号主机的单个主机.
当我在没有库存的情况下运行ansible-playbook时,它说:
[警告]:提供的主机列表为空,只有localhost可用
是否有一种简单的方法来针对没有主机或可能是localhost运行playbook?
一些依赖项被错误地添加到require而不是require-dev.我尝试手动更改composer.json和运行composer install,但composer.lock没有更改.所以我的猜测是,它忽略了变化composer.json,并确保安装的内容反映了composer.lock文件中的内容.我错了吗?如果没有错,我该怎么做?我想尽可能保留composer.lock文件中的软件包版本.
如果我使用加密host_vars/*文件ansible-vault,我似乎没有机会拥有除加密清单文件之外的非加密主机变量.我错过了什么吗?
一个可以设置error_reporting在nginx.conf像这样:
fastcgi_param PHP_VALUE error_reporting=E_ALL;
Run Code Online (Sandbox Code Playgroud)
但是,如果我在一个服务器块中执行此操作,它是否会影响所有其他服务器块?我应该同时更改所有服务器块中的php设置吗?
文档说:
由于处理程序也是任务,因此您还可以包含"处理程序:"部分中的处理程序文件.
我做了什么,playbook.yml:
- hosts: all
handlers:
- include: handlers.yml
# - name: h1
# debug: msg=h1
tasks:
- debug: msg=test
notify: h1
changed_when: true
Run Code Online (Sandbox Code Playgroud)
handlers.yml:
- name: h1
debug: msg=h1
Run Code Online (Sandbox Code Playgroud)
然后,
$ ansible-playbook playbook.yml -i localhost, -k -e ansible_python_interpreter=python2 -v
...
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "test"
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=0
...
Run Code Online (Sandbox Code Playgroud)
但是,当我取消注释线条时,我明白了
$ ansible-playbook playbook.yml -i localhost, -k -e ansible_python_interpreter=python2 -v
...
TASK [debug] ******************************************************************* …Run Code Online (Sandbox Code Playgroud) 假设我有一个 Rails 应用程序,其中安装了 gems bundler。我应该使用bundle exec rails还是bin/rails?我应该使用bundle exec rake还是bin/rake?有什么区别吗?其中任何一个比另一个更好吗?