PL *_*ent 4 ansible ansible-pull
我正在尝试使用 Ansible 来自动化我的工作站。我一直在关注本教程作为介绍。但我使用该命令不断收到警告ansible-pull
。
做完后sudo ansible-pull -U https://github.com/plsergent/setup-user-friendly.git
我得到[WARNING]: Could not match supplied host pattern, ignoring: <local machine hostname>
这是我的/etc/ansible/hosts
文件:
[localhost]
127.0.0.1
[localhost:vars]
ansible_connection=local
Run Code Online (Sandbox Code Playgroud)
和我的local.yml
文件:
- hosts: localhost
become: true
pre_tasks:
- name: update repositories
apt: update_cache=yes
changed_when: False
tasks:
- include: tasks/packages.yml
- include: tasks/users.yml
- include: tasks/cron.yml
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱这个警告?
谢谢
注意:当我使用以下命令运行我的剧本时,没有任何警告ansible-playbook
:
sudo ansible-playbook local.yml
有没有办法摆脱这个警告?
您收到警告是因为ansible-pull
构建的命令行包含如下--limit
构建的选项:
node = platform.node()
host = socket.getfqdn()
limit_opts = 'localhost,%s,127.0.0.1' % ','.join(set([host, node, host.split('.')[0], node.split('.')[0]]))
Run Code Online (Sandbox Code Playgroud)
其中platform.node()
返回您的系统节点名称(即 的输出uname -n
)并socket.getfqdn()
尝试返回系统的完全限定域名。这意味着 ansible 命令行将如下所示:
ansible-playbook -l localhost,yourhostname.example.com,yourhostname,127.0.0.1 ...
Run Code Online (Sandbox Code Playgroud)
当您在--limit
参数中提供的主机名与清单中的主机不匹配时,就会出现错误Could not match supplied host pattern
。您可以像这样重现:
$ ansible all -m ping -l host-that-does-not-exist
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'
[WARNING]: Could not match supplied host pattern, ignoring: host-that-does-not-exist
Run Code Online (Sandbox Code Playgroud)
如果警告确实让您烦恼,您可以通过-i
在命令行中添加一个选项来显式地将本地主机名包含在 ansible 清单中来避免它ansible-pull
。您可以内联包含主机:
ansible-pull -i localhost,myhostname -U ...
Run Code Online (Sandbox Code Playgroud)
或者您可以将其明确指向现有清单文件:
ansible-pull -i /etc/ansible/hosts -U ...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28922 次 |
最近记录: |