ayy*_*rex 13 kerberos ansible ansible-2.x
我正在尝试创建 ansible 剧本来在 centos7 上安装和配置 kerberos。
我有一个 yum 安装所需 rpm 的任务
- name: install kerberos
yum: name={{ item }} state=present
with_items:
- krb5-server
- krb5-libs
Run Code Online (Sandbox Code Playgroud)
以及启动服务的任务
- name: start kerberos service
service: name=krb5kdc.service state=started enabled=yes
Run Code Online (Sandbox Code Playgroud)
该剧本失败了
TASK [kerberos : start the systemd kerberos service] ********************************
fatal: [zen_wozniak]: FAILED! => {"changed": false, "msg": "Could not find the requested service krb5kdc.service: host"}
Run Code Online (Sandbox Code Playgroud)
这看起来应该很简单,yum install rpm 然后启动服务,但是服务单元文件甚至找不到。我究竟做错了什么?
为了清楚起见,我使用 ansible 2.4.2.0 和 centos:7.3.1611 docker 基础镜像。
编辑:: yum 安装步骤正在运行...
TASK [kerberos : debug] ***********************************************************************************************
ok: [brave_payne] => {
"result": {
"changed": false,
"failed": false,
"results": [
{
"arch": "x86_64",
"envra": "0:krb5-server-1.15.1-8.el7.x86_64",
"epoch": "0",
"name": "krb5-server",
"release": "8.el7",
"repo": "base",
"version": "1.15.1",
"yumstate": "available"
},
{
"arch": "x86_64",
"envra": "0:krb5-server-1.15.1-8.el7.x86_64",
"epoch": "0",
"name": "krb5-server",
"release": "8.el7",
"repo": "installed",
"version": "1.15.1",
"yumstate": "installed"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
登录到失败的 ansible 容器并手动启动如下所示
[root@94e29c0e8bdd /]# systemctl status krb5kdc.service
Failed to get D-Bus connection: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
是的,容器正在特权运行
docker inspect --format='{{.HostConfig.Privileged}}' 94e29c0e8bdd
true
Run Code Online (Sandbox Code Playgroud)
小智 0
我认为问题的根源在于容器没有特权,因此无法与 dbus 通信,这可能意味着返回到 Ansible 的 systemd 状态包含LoadState=not-found输出中的文本,systemctl show krb5kdc.service这就是导致 Ansible 提供错误的原因得到。
| 归档时间: |
|
| 查看次数: |
39026 次 |
| 最近记录: |