服务在运行时,有些参数最好不要暴露在程序中。本篇讨论使用bash文件保存关键信息,python在使用时调取。
shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。
Bourne Again shell (bash), 正如它的名字所暗示的,是 Bourne shell 的扩展。bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 C 和 Korn shell 里的优点。bash 有很灵活和强大的编程接口,同时又有很友好的用户界面。
我记得以前查过,bash文件大概是有分成系统级和用户级的,在使用时一般使用用户级的修改。
简单来说,MAC通常修改 ~/.bash_profile, Ubuntu下则是~/.bashrc
简单来说就是设置变量,具体点可以看这篇文章。
bash中的设置
... export var1="some text" var2="some text"通过os包可以把bash_profile或者bashrc中设置的变量读进来。
import os # 使用export设置 # echo $var1 print('var1', os.environ.get('var1')) # 直接赋值,不可以显示 # echo $var2 print('var2', os.environ.get('var2'))结果是var1正确读入,var2是None。
补充:os中还有一个函数,可以获取或者填充默认值
os.getenv('var1', DEFAULT_VALUE)我只使用MAC和Ubuntu,因此使用时通过统一的规范,定义好一些常用的密码字符,通过sh脚本和paramiko进行统一的添加即可。
1 将对应的变量程序写入bash文件2 启动应用进行调用具体我还没试(毕竟主机都有在跑一些东西),下次拿一台新主机,实验结果可以贴在这里。 Note: 最坏的结果可能导致系统出问题 计划:
1 开通新主机root用户的ssh,参考。2 使用paramiko读取当前的.bashrc文件到本地,参考。3 在本地(MAC)存放了配置文件,py(configparser)将配置文件读出,同时将.bashrc文件以文本方式读入。4 通过jinja模板,批量生成对应的文本,并将其附加到原来的.bashrc文件末尾。5 使用paramiko把文件回传覆盖原来的.bashrc6 使用paramiko进行source .bashrc命令。