ansible: KeyError: ‘getpwuid(): uid not found: 1000130000
在k8s中使用Job跑了一个ansible。但是在具体执行ansible逻辑时报错了,提示:KeyError: 'getpwuid(): uid not found: 1000130000由于以上错误的存在,导致不能继续处理后续的逻辑了。进入ansible 对应的container里面执行whoami,报错正常情况下,执行whoami是可以找到该uid对应的用户名的。如[root@12345678
·
在k8s中使用Job跑了一个ansible。
但是在具体执行ansible逻辑时报错了,提示:
KeyError: 'getpwuid(): uid not found: 1000130000
由于以上错误的存在,导致不能继续处理后续的逻辑了。
进入ansible 对应的container里面执行whoami,报错
正常情况下,执行whoami是可以找到该uid对应的用户名的。
如
[root@1234567890-create-cluster-4lh8g openshift-ansible]# whoami
root
通过查找资料发现这是openshift scc和policy的问题。
为了能以正确的权限在k8s中执行ansible,对应的Job需要相应的权限。
1. 首先创建对应的sa。
2. 给该sa添加对应的policy,允许anyuid,并且是priviliged模式
3. 将该sa名称指定到Job的serviceAccount。
oc create sa katy -n demo
oc adm policy add-scc-to-user anyuid -z katy -n demo
oc adm policy add-scc-to-user privileged -z katy -n demo
serviceAccount: katy
serviceAccountName: katy
至此,问题解决。
更多推荐
已为社区贡献14条内容
所有评论(0)