AWS的外壳

nephele的Python项目详细描述


侄子:AWS的外壳。
```````````````````````````

overview
==



所以我把这个放在一起:
python中一个非常简单的交互式cli shell。

我邀请
请求删除丢失的功能、错误修复等。


警告
==


此工具非常不成熟。只要我使用它,它就会发生很大的变化,因为我会把它做的事情(或不做的事情)和它做(或不做的事情)的方式看作是我工作流程中的障碍。


也希望语法处于相当稳定的变化状态。


代码块:

pip install nephele


用法
==

…代码块::bash

$nephele
(aws)/:帮助


其格式如下:

…代码块::

profile:{profile name}

profiles:
{profile name}:
awsprofile:{aws profile name}
ssh跳转主机:{jump主机名或ip}
ssh跳转用户:{jump主机名}
{profile-name-2}:
awsprofile:{aws profile name}
ssh跳转主机:{jump主机名或ip}
ssh-jump-user:{jump-host-user name}


ssh宏:
{macro-name}{remote命令}






ssh支持
==









ssh-jump-host}
ssh-jump-host条目,这可能是‘侄子’最好的
部分,这可能是‘侄子’最好的一部分,这可能是‘侄子’最好的一部分。







侄子罐头向一个实例发送sh,而不必计算它的
ip、修改/etc/host或知道它的aws实例id以外的任何信息:

。bash
(aws)/:ssh{instance-id}
/usr/bin/ssh{firfirst-privatip}
最后一次登录:从{someter}{someter}{someter}


{{{{{{{{{{{{{}{}}{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{.com/amazon linux ami/2016.09-release-notes/

group,您甚至不需要知道实例id。您可以通过实例索引ssh(在
自动缩放组的实例列表中):

代码块::bash

(aws)/stack:{stack}/stack:{substack}/:asg 0
加载自动缩放组0
加载堆栈资源arn:{arn}
自动缩放组:{name}
==实例====
0健康az-2a{实例id}
1健康az-2b{实例id}
2健康az-2c{实例id}
(aws)/stack{stack}/stack:{substack}/asg:{asg}/:ssh 2
/usr/bin/ssh{firfirst privatip}
最后一次登录:{some}{some}来自{so{so{some}

{br/>https://aws.amazon.com/amazon linux ami/2016.09-release-notes/

还支持端口转发G!

…代码块::bash

(aws)/stack:{stack}/stack:{substack}/asg:{asg}/:ssh 2-l88888:localhost:88888
/usr/bin/ssh{first privatip}
最后一次登录名:{some}来自{{someter}



{;\uuuuuuuuuuuuuuuuuuuuuuu124;

https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/
$exit
(aws)/stack:{stack}/stack:{substack}/asg:{asg}/:ssh 2-l 8888<;——有用的速记!

那么,如何为此设置`~/.nephele/config.yaml`呢?如果您的
aws管理员设置了一些设置,以便在命令行中使用ssh
forward.如果需要ssh的"-j"选项来连接到
主机,请分别使用
`profiles.{profile}.ssh jump host`和
`profiles.{profile}.ssh jump user`指定跳转主机用户和密码。

ssh还支持根据实例标记(或
other instancc)选择ssh密钥。e元数据)。要使用它,请实现一个ssh插件,并将其放入`~/.nephele/plugins'中以完成此任务。下面是一个
示例:

…代码块::python

import os
class sshplugin:
def getusername(self,instance,profile):
"
给定aws实例和侄子配置文件的描述,
确定在访问该实例时要使用的用户名。
"
返回"ec2 user"

def getidentityfile(self,instance,profile):
"
给定aws实例和侄子配置文件的描述,
确定ssh到该实例时要使用的ssh标识文件的名称。
"
返回os.path.join(os.path.expanduser(~"、".ssh"、"keys"、"prod"、"somekey.pem")



>命令引用
====


我们使用优秀的argparse模块指定如何使用命令。此参考仅包含说明;有关
语法的详细信息,请使用任何命令的"-h"选项。


可用子命令:

*config print-打印当前配置
*config reload-从磁盘重新加载当前配置
*config set-更改配置中的设置
*config save-将配置保存到磁盘

^^^

MFA令牌。侄子将执行
相应的"aws"命令行来验证该令牌。

instance
^^^^^^^^

这与"ssh"不同,因为它不是连接到实例的
u;只是在shell中导航
进行详细检查。



profile
^^^^^^^^^





e.

注意:此命令在更具体的上下文中扩展,例如在自动缩放组内的



up
^^


向上导航一个级别。

忘了列。也许
最后一点是显而易见的:-d

是的,您可以通过查看提交日志来了解这一切。为什么我要让你经历这些?

*现在可以通过运行"mfa{token}"来输入mfa令牌。这是目前的基本支持,如果您以前从未使用过[AWS MFA](https://github.com/lonelyplanet/aws-mfa),那么它很可能会崩溃。

*现在您可以使用ssh进行短距离端口转发。基本上,如果要通过同一个本地端口转发远程服务器上的端口,
就不再需要使用`-l{port}:localhost:{port}`
语法。相反,只需说"-l{port}"。您仍然可以使用服务器
作为到另一台服务器的隧道,或者使用旧语法选择不同的本地/远程
端口号。

*启动时,Nevele会自动为您运行"堆栈"。

*--配置文件(缩写:-p)选择特定的AWS配置文件。当其他流程要求您的默认配置文件是您希望Nephele使用的配置文件以外的配置文件时,这将非常有用。


*Nephele现在知道如何获取您的AWS DEVICE信息。我还试图使其文件与aws mfa兼容,因此理论上您不应该再需要单独的aws mfa工具了-只需使用nevele来管理您的.aws/{mfa相关文件},并且您应该能够很好地
go。当然,我妻子总是说她想学理论,
因为一切正常……理论上,

*--mfa(缩写:-m)在启动时提供mfa命令。如果您*知道*
您缓存的MFA凭据已过期,这就省去了
等待Nephele被拒绝访问的步骤。

*启动Nephele后,现在有一个"profile"命令来更改配置文件。

*"stacks"现在添加了"-e"和"-i"参数,这样您就可以lude或
在筛选器中包含新的堆栈状态。

*`~/.nephele/config.yaml`是新的配置文件。它现在有一个设置,
"profile"。示例:

…代码块::config

--
profile:{aws profile name}

*`ssh`命令现在有一个`-r`/`--replace key`选项。在aws中,ip地址很有可能被回收,特别是当您在迭代cloudformation堆栈的模板时创建/拆除cloudformation堆栈时。当这种情况发生时,您不需要对`~/.ssh/known_hosts`进行
黑客攻击,就可以通过ssh连接到主机。这个
选项将运行相应的命令(`ssh keygen-r{host}`),以便在运行ssh之前删除条目。


*自动缩放组现在支持'terminateinstance'命令。

*awsstack现在打印堆栈事件和输出,就好像它们是正常的堆栈资源一样。

*增加了在列出堆栈时全局搜索的能力。例如,"stacks*cass*`
将列出所有以"cass"为子串的堆栈。

*从aws shell重命名为nephele(在神话云
nymph之后),并通过pip安装工具。


*现在可以在自动缩放组中跨实例运行命令。导航到组并使用"run"命令。

*CloudWatch日志记录支持已开始。到目前为止,这是非常初级的
您可以看到堆栈中的日志组,使用"loggroup"命令选择它们,并查看是否存在流。
输出尚未美化,您实际上还看不到这些流的内容。很快。

*IAM角色支持也已开始。它也很初级,所以远。您可以在cloudformation堆栈中看到角色,使用"role"可以查看到
策略文档级别。输出尚未美化
,它是纯只读的。我不想美化它,因为
pprint()对我来说已经足够好了,但是如果
对您有意义,我当然欢迎使用补丁程序。

*云表日志支持将继续添加
`logstream`命令,该命令可从"loggroup"内部获得。
right n当我对日志扫描api更加熟悉时,我计划添加一些在"loggroup"级别的跨流日志查看功能,可能是以类似grep的功能的形式。当然,没有承诺,
只记录我的头在哪里。

*在自动缩放组中,"printInstances"命令有两个新的选项:`-t'打印标记列表,`-d'打印所有
节点的详细信息。

*在堆栈中,"copy"命令现在知道如何复制ASG的ID
到剪贴板。

*ASG现在支持"printActivities"和"printActivity"命令
,以帮助调试由自动缩放启动的更改。

*ASG现在支持通过"printpolicy"命令显示缩放策略。

*ASG的"run"命令支持跳过主机的"-s"选项

*堆栈现在显示其参数。这些是为了适应而逃脱和"消失的"。将添加一个命令以在某个点打印完整的参数值。*stdplus.elipsifyMiddle现在是一个东西。

*ssh命令不再依赖于` ~/.ssh/config`工作,而是
支持` ~/.nephele/config.yaml`

*ssh现在支持奇妙的-j选项(您需要一个最新的ssh
客户端才能工作)

*ssh有非常有限的功能。d宏观能力。虽然它还没有
变量替换的方法,但是您可以这样做:

…代码块::config

ssh宏:
cassandrapid:pgrep-f cassandrademon

(aws)/stack:…/asg:…/:ssh-m cassandrapid
/usr/bin/ssh 192.168.1.1-q-j jump-host.us-west-2.generic.domain pgrep-f cassandrademon
3285
(aws)/stack:…/asg:…//:

*您现在可以使用"config reload"命令重新加载配置。

*已开始向此文档添加命令引用。

*现在有一种机制,可以根据实例元数据确定ssh时要使用的用户和标识文件。



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java访问私有字段而不使用getter方法?   使用PowerMockito在JavaEWSAPI中模拟测试拉订阅   启动活动时未保存java首选项并清除变量   java如何在servlet中检索子域?斯普林有帮手吗   java使用Docker从命令行构建Android项目   java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动   java在重用FileOutputStream时应该关闭流吗?   java使用RESTAPI将文件上载到s3 bucket   Java SOAP Web服务应用程序中的mysql用户登录方法不工作   java使用多个数字计算百分比并转换为长   java Android SQLiteDatabase查询忽略空格   java如何在Javafx中比较两个字段文本   java错误:未设置java_HOME,在Eclipse安装后找不到   java在安卓中保存对象   java如何使用jaxws从返回List<Object>的服务中检索值   java Google OAuth2 JWT令牌验证异常   SpringMVC中的JavaUTF8编码问题,当从JSP表单发送POST请求中的越南语信件时   java从webview重定向到安卓应用程序   JUnit 5中多个扩展的java顺序