- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我开始学习 Ansible,但文档不是很有帮助。
我已经在 RHEL 上安装了控制机器,并创建了必要的 hosts 文件和 windows.yml。
但是当尝试连接到远程 Windows 服务器以取回 pong 时,我收到以下错误:
[root@myd666 ansible_test]# ansible windows -i hosts -m win_ping
hostname | UNREACHABLE! => {
"changed": false,
"msg": "ssl: the specified credentials were rejected by the server",
"unreachable": true
}
在 Installing python-kerberos dependencies 之后,
我现在得到这个错误:
hostname | UNREACHABLE! => {
"changed": false,
"msg": "Kerberos auth failure: kinit: KDC reply did not match expectations while getting initial credentials",
"unreachable": true
}
我的 windows.yml 文件包含:
# it is suggested that these be encrypted with ansible-vault:
# ansible-vault edit group_vars/windows.yml
ansible_ssh_user: user@MYDOMAIN.NET
ansible_ssh_pass: password
ansible_ssh_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
我在 Domain\user 的语法上做错了吗?也许我忘了在 Windows 机器上安装一些东西?我只运行了 ConfigureRemotingForAnsible.ps1 脚本,那里没有安装 Python。
这是我的krb5.conf 文件:
[libdefaults]
default_realm = MYDOMAIN.NET
#dns_lookup_realm = true
#dns_lookup_kdc = true
[realms]
MYDOMAIN.NET = {
kdc = dc1.mydomain.net
default_domain = hpeswlab.net
}
[domain_realm]
.mydomain.net = MYDOMAIN.NET
mydomain.net = MYDOMAIN.NET
我确实使用 Kinit 获得了一个 token :
kinit -C user@MYDOMAIN.NET
klist
Klist 输出:
Valid starting Expires Service principal
01/31/2017 11:25:33 01/31/2017 21:25:33 krbtgt/MYDOMAIN.NET@MYDOMAIN.NET
renew until 02/01/2017 11:25:29
最佳答案
在 windows.yml 中,请仔细检查并确保 ansible_ssh_user: user@MYDOMAIN.NET
行确实具有大写的领域 MYDOMAIN.NET。在某处,KDC 的领域请求以小写字母而不是大写字母发送,导致“KDC 回复与预期不符..”错误。
在krb5.conf中,区分大小写也很重要。首先我会注意到,由于 KDC 名称是 IP 主机的名称,因此需要将其指定为完全限定的主机名,如下例所示。它假定您的 KDC 名为“dc1.mydomain.net”。接下来,域名只能是小写。另一方面,Kerberos 领域名称需要使用大写 - 如果在此文件中错误地以小写形式指定了领域名称,这是您可能会收到此错误消息的另一个原因。请将您的整个 krb5.conf 修改为如下所示(仅将“dc1”更改为实际名称)并且它应该可以工作。旁注:您不一定需要 krb5.conf 中的两行 dns_lookup_
,因此请按照下面的注释将它们注释掉。这些只是根据 MIT Kerberos Documentation 的回退机制并且实际上可能会在您的简单用例中引起问题。修改任一配置文件后,请确保在再次测试之前重新启动 Ansible 引擎。
[libdefaults]
default_realm = MYDOMAIN.NET
#dns_lookup_realm = true
#dns_lookup_kdc = true
[realms]
MYDOMAIN.NET = {
kdc = dc1.mydomain.net
default_domain = mydomain.net
}
[domain_realm]
.mydomain.net = MYDOMAIN.NET
mydomain.net = MYDOMAIN.NET
有关如何正确设置 krb5.conf,请参阅此 MIT 引用资料:Sample krb5.conf File
在 Hosts 文件中,检查以确保您的 IP 到名称的映射是正确的。根据 RFC,Kerberos 需要一个正常运行的 DNS,如果您的 Hosts 文件中有过时的条目,您将面临更改该 DNS 的风险。
最后,虽然我无法判断您使用的是哪个版本的 Ansible,但我做了一些研究,发现“Ansible 2.0 已弃用来自 ansible_ssh_user、ansible_ssh_host 和 ansible_ssh_port 的“ssh”,成为 ansible_user、ansible_host、和 ansible_port。”这肯定是问题的一部分。请参阅:Ansible on Windows Documentation
关于authentication - 在具有域用户的 Windows 上使用 Ansible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41922521/
尽管用户是 sudo 用户,但远程主机在运行 Ansible playbook 时仍会引发错误。 "/usr/bin/python: can't open file '/home/ludd/.ansi
只是想了解 ansible 和 ansible-galaxy 之间的核心区别是什么?从文档中,ansible-galaxy 用于管理角色(创建和发布)那么ansible是做什么用的呢?只运行剧本? 我
只是想了解 ansible 和 ansible-galaxy 之间的核心区别是什么?从文档中,ansible-galaxy 用于管理角色(创建和发布)那么ansible是做什么用的呢?只运行剧本? 我
我有一个定义如下的剧本: - name: install percona rpms hosts: imdp roles: - role1 - role2 - role3
Ansible 版本:2.4.2.0 来自 here和 here ,我可以写下面的剧本 $ cat test.yml - name: Finding Master VMs hosts: all-c
我正在运行这个 Ansible 剧本: - name: Set String set_fact: string: item loop: "{{some_var|filter()}}"
我无法在我的输出变量中搜索我用于 when 语句的指定字符串。下面的代码应该检查输出变量中的字符串“distribute-list”,但是在运行 playbook 时会出现错误。 fatal: [19
在 Ansible 中是否可以仅当处理程序出现在该播放中时才有条件地通知处理程序? 例如:我有一个多主机配置的剧本。有些主机使用 Apache 运行 PHP,有些使用 PHP-FPM。根据主机,修改
我是 ansible 的新手,正在学习 ansible 并致力于定义 ansible 脚本以在服务器上安装 confluent。在查看有关如何定义和运行 ansible 脚本的示例时,一些示例使用“a
是否可以列出Ansible角色中的任务? 即除了grepping - name以外,还有没有现成的方法可以做到这一点? 最佳答案 创建一个指定角色的简单剧本,并使用ansible-playbook选项
所以ansible-playbook有 --ask-pass和 --ask-sudo-pass .有没有办法让 ssh 先尝试没有密码,然后只有在无密码登录失败时才提示输入密码?同样,ansible
Ansible 提供了许多过滤器和条件。据我所知;应该可以实现一个 Ansible playbook 来执行一组任务,这些任务实现与图灵完备语言相同的结果。那么,图灵完备吗? 最佳答案 我觉得是这样的
我一直在寻找,但没有太多关于什么 Ansible 保险库密码文件应该是什么样的。 例如我想做: ANSIBLE_VAULT_PASSWORD_FILE=./pwdfile ansible-vault
我在运行完整的剧本时遇到了麻烦,因为后来的剧本所依赖的一些事实在早期的剧本中被修改了,但是 ansible 不会在运行中更新事实。 运行ansible somehost -m setup当整个剧本开始
我对Ansible很陌生 是否可以使用Ansible检查文件中是否存在字符串。 我要检查的是用户有权访问服务器。 这可以使用cat /etc/passwd | grep username在服务器上完成
我正在尝试使用 jinja2 通过 ansible 模板循环字典以创建多个数据源,但收到此错误 [{'msg': "AnsibleUndefinedVariable: One or more unde
我正在尝试将文件复制到/ etc。但是当我运行剧本时,我收到“msg:目标/ etc不可写”的消息。这是我的Playbook任务部分。非常感谢您的帮助。 任务: - name: copy rsyslo
我正面临这个恼人的错误:Ansible hosts are randomly unreachable #18188 . 有没有办法告诉 Ansible 如果 SSH 连接失败,再试一次?还是2倍? 根
我正在编写一个简单的任务来创建用户。作为此任务的一部分,我想从defaults / main.yml中读取密码。 默认值/ main.yml test_user:testuser test_group
当我在Ansible中使用lineinfile时,它不会写',"字符 lineinfile: 'dest=/home/xyz state=present line="CACHES="default""
我是一名优秀的程序员,十分优秀!