维基媒体ssh包装器,用于扩展主机名
项目描述
wm-ssh
SSH包装器,用于扩展维基媒体主机名。
目前它将尝试多个来源,大量使用缓存
- 已知有效条目
- 已知主机文件 (https://config-master.wikimedia.org/known_hosts.ecdsa)
- Netbox (https://netbox.wikimedia.org)
- Openstack浏览器 (https://openstack-browser.toolforge.org)
安装
pip
只需 pip install wm-ssh
,这将引入一个新的二进制文件,wm-ssh。
配置
您可以通过创建一个配置文件来更改默认设置,并使用--config-file
传递路径或使用默认的~/.config/wm-ssh/config.json
。
您可以通过运行来查看加载的配置示例
wm-ssh -v --print-config
已知主机URL
这是一个包含ssh known hosts
格式文件的URL(参见sshd(8)的man手册以获取格式),默认值将使用维基媒体裸金属主机和非云VM。
Openstack浏览器
到openstack浏览器toolforge工具的URL,包含所有VM的列表,默认值将使用当前可用的一个。
Netbox
注意:Netbox功能需要您拥有netbox.wikimedia.org的令牌,请参阅:https://netbox.wikimedia.org/user/api-tokens/
您可以选择配置 netbox cli 并仅设置配置文件的路径(默认为 ~/.config/netbox/config.json
),或者直接在 wm-ssh 配置中设置 netbox 令牌和 URL,例如(~/.config/wm-ssh/config.json
)。
{
"netbox_config": {
"netbox_url": "https://netbox.wikimedia.org/api",
"api_token": "myapitokenwouldgohere"
}
}
从代码运行
请注意,此模式可能需要一些调整以实现自动补全功能。
克隆代码
git clone git@github.com:david-caro/wm-ssh.git
使用 poetry 安装依赖项
poetry install
使用 poetry 运行
poetry run wm-ssh <MYHOST>
Bash 补全
您可以使用 utils/wm-ssh.complete
文件(例如,从您的 bashrc 中加载它)来实现 bash 补全功能,尽管它们仅适用于 wmcs openstack 实例和已知主机。
例如,在您的 ~/.bashrc
文件中添加以下内容:
source /path/to/git/repo/utirs/wm-ssh.complete
之后,它将从缓存中自动补全主机名
08:04 PM ~/Work/repos/per_user/david-caro/wm-ssh (main|✚ 2)
dcaro@vulcanus$ wm-ssh an<tab><tab>
Display all 127 possibilities? (y or n)<y>
an-airflow1001.eqiad.wmnet an-presto1004.eqiad.wmnet an-worker1101.eqiad.wmnet
an-airflow1002.eqiad.wmnet an-presto1005.eqiad.wmnet an-worker1102.eqiad.wmnet
an-airflow1003.eqiad.wmnet an-test-client1001.eqiad.wmnet an-worker1103.eqiad.wmnet
analytics1058.eqiad.wmnet an-test-coord1001.eqiad.wmnet an-worker1104.eqiad.wmnet
analytics1059.eqiad.wmnet an-test-coord1002.eqiad.wmnet an-worker1105.eqiad.wmnet
analytics1060.eqiad.wmnet an-test-druid1001.eqiad.wmnet an-worker1106.eqiad.wmnet
analytics1061.eqiad.wmnet an-test-master1001.eqiad.wmnet an-worker1107.eqiad.wmnet
analytics1062.eqiad.wmnet an-test-master1002.eqiad.wmnet an-worker1108.eqiad.wmnet
analytics1063.eqiad.wmnet an-test-presto1001.eqiad.wmnet an-worker1109.eqiad.wmnet
analytics1064.eqiad.wmnet an-test-ui1001.eqiad.wmnet an-worker1110.eqiad.wmnet
analytics1065.eqiad.wmnet an-test-worker1001.eqiad.wmnet an-worker1111.eqiad.wmnet
analytics1066.eqiad.wmnet an-test-worker1002.eqiad.wmnet an-worker1112.eqiad.wmnet
analytics1067.eqiad.wmnet an-test-worker1003.eqiad.wmnet an-worker1113.eqiad.wmnet
analytics1068.eqiad.wmnet an-tool1005.eqiad.wmnet an-worker1114.eqiad.wmnet
analytics1069.eqiad.wmnet an-tool1007.eqiad.wmnet an-worker1115.eqiad.wmnet
analytics1070.eqiad.wmnet an-tool1008.eqiad.wmnet an-worker1116.eqiad.wmnet
analytics1071.eqiad.wmnet an-tool1009.eqiad.wmnet an-worker1117.eqiad.wmnet
analytics1072.eqiad.wmnet an-tool1010.eqiad.wmnet an-worker1118.eqiad.wmnet
analytics1073.eqiad.wmnet an-tool1011.eqiad.wmnet an-worker1119.eqiad.wmnet
analytics1074.eqiad.wmnet an-web1001.eqiad.wmnet an-worker1120.eqiad.wmnet
analytics1075.eqiad.wmnet an-worker1078.eqiad.wmnet an-worker1121.eqiad.wmnet
analytics1076.eqiad.wmnet an-worker1079.eqiad.wmnet an-worker1122.eqiad.wmnet
analytics1077.eqiad.wmnet an-worker1080.eqiad.wmnet an-worker1123.eqiad.wmnet
an-conf1001.eqiad.wmnet an-worker1081.eqiad.wmnet an-worker1124.eqiad.wmnet
an-conf1002.eqiad.wmnet an-worker1082.eqiad.wmnet an-worker1125.eqiad.wmnet
an-conf1003.eqiad.wmnet an-worker1083.eqiad.wmnet an-worker1126.eqiad.wmnet
an-coord1001.eqiad.wmnet an-worker1084.eqiad.wmnet an-worker1127.eqiad.wmnet
an-coord1002.eqiad.wmnet an-worker1085.eqiad.wmnet an-worker1128.eqiad.wmnet
an-db1001.eqiad.wmnet an-worker1086.eqiad.wmnet an-worker1129.eqiad.wmnet
an-db1002.eqiad.wmnet an-worker1087.eqiad.wmnet an-worker1130.eqiad.wmnet
an-db-backup-1.analytics.eqiad1.wikimedia.cloud an-worker1088.eqiad.wmnet an-worker1131.eqiad.wmnet
andrewtest2.trove.eqiad1.wikimedia.cloud an-worker1089.eqiad.wmnet an-worker1132.eqiad.wmnet
an-druid1001.eqiad.wmnet an-worker1090.eqiad.wmnet an-worker1133.eqiad.wmnet
an-druid1002.eqiad.wmnet an-worker1091.eqiad.wmnet an-worker1134.eqiad.wmnet
an-druid1003.eqiad.wmnet an-worker1092.eqiad.wmnet an-worker1135.eqiad.wmnet
an-druid1004.eqiad.wmnet an-worker1093.eqiad.wmnet an-worker1136.eqiad.wmnet
an-druid1005.eqiad.wmnet an-worker1094.eqiad.wmnet an-worker1137.eqiad.wmnet
an-launcher1002.eqiad.wmnet an-worker1095.eqiad.wmnet an-worker1138.eqiad.wmnet
an-master1001.eqiad.wmnet an-worker1096.eqiad.wmnet an-worker1139.eqiad.wmnet
an-master1002.eqiad.wmnet an-worker1097.eqiad.wmnet an-worker1140.eqiad.wmnet
an-presto1001.eqiad.wmnet an-worker1098.eqiad.wmnet an-worker1141.eqiad.wmnet
an-presto1002.eqiad.wmnet an-worker1099.eqiad.wmnet
an-presto1003.eqiad.wmnet an-worker1100.eqiad.wmnet
08:04 PM ~/Work/repos/per_user/david-caro/wm-ssh (main|✚ 2)
dcaro@vulcanus$ wm-ssh an
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
wm_ssh-0.4.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 133696b9fc50947dff63e51d503badbc501410d239a875bba1a42b3d5c52de58 |
|
MD5 | 7d6a4b4e87dc3f4bbd64e27116fe4704 |
|
BLAKE2b-256 | a569ea1cddf22732a0c4784ce90fa014137f5d35666203ced6d69b1d87d5931b |
wm_ssh-0.4.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 622e53f0ba734dfd970bbd3124819c29626957a214926b066a93bf7f06583fe0 |
|
MD5 | b4fba922373c5302550f21aa6e3cefb3 |
|
BLAKE2b-256 | 94f1964f13e7e32c7566d1906689f4ce9fec30d72f0b74adb45509155cf60a97 |