【发布时间】:2019-01-03 13:06:30
【问题描述】:
我生成了一个 python 脚本,它使用 pyyaml 打开一个部署 config_file.yaml,修改了一些参数并再次保存它。该 python 脚本将在 Kubernetes 集群的主节点中执行。
一旦生成了新文件,我的意图是执行
kubectl apply -f config_file.yaml
在 python 脚本中将修改应用于部署。
我一直在阅读如何使用 kubernetes python 客户端进行操作,但似乎还没有准备好执行 kubectl apply。
所以另一种选择是创建一个 bash 脚本并从 python 脚本执行它。
Bash 脚本:
#!/bin/bash
sudo kubectl apply -f config_file.yaml
我给它权限 chmod +x shell_scipt.sh
Python 脚本:
import subprocess
subprocess.call(['./shell_script.sh'])
但是出现错误: _execute_child 中的文件“/usr/lib/python2.7/subprocess.py”,第 1047 行 引发 child_exception OSError: [Errno 13] 权限被拒绝
我不知道如何解决这个错误,我已经测试了 bash 脚本的权限,但没有任何效果。
【问题讨论】:
-
你是从 sudo 运行的吗?
标签: python bash kubernetes kubectl