对DevOps工程师有用的CLI工具

举报
kaliarch 发表于 2022/10/05 20:00:51 2022/10/05
【摘要】 这些是我正在使用的工具,并从我的同事那里观察/学习到的。使用正确的工具和技术将大大提高我们的生产力,并为我们的角色带来更多的价值。这里列出的一些是非常明显的,但为了完整起见,我在这里添加了它们。我想听听你在评论部分一直使用的类似工具。大多数这些工具都是开源的,确保使用它们不会违反公司的任何政策这些是要安装在工作站或笔记本电脑上的工具,但不能安装在服务器上 Cloud CLI我们大多数人使用I...

这些是我正在使用的工具,并从我的同事那里观察/学习到的。使用正确的工具和技术将大大提高我们的生产力,并为我们的角色带来更多的价值。这里列出的一些是非常明显的,但为了完整起见,我在这里添加了它们。我想听听你在评论部分一直使用的类似工具。
大多数这些工具都是开源的,确保使用它们不会违反公司的任何政策

这些是要安装在工作站或笔记本电脑上的工具,但不能安装在服务器上

Cloud CLI

我们大多数人使用IaC工具,如Terraform、Cloudformation进行云资源管理。但是由于各种原因,如故障排除等,我们经常需要查找资源的详细信息。我们可以使用云web门户来完成这项任务,但通常需要更长的时间来验证和加载页面。但是,一旦熟悉了这组命令,使用CLI工具会更加有效。这些是为大多数流行的云提供商提供的CLI工具

fzf

这是一个linux后台工具,可以从选项列表中选择参数等等。它补充了下面的工具列表。一旦您浏览了kubectx github页面中提到的细节,您就会有更好的想法

https://github.com/junegunn/fzf

kubectx

对于那些正在处理多个集群的人来说,这有助于在kubernetes集群之间切换。它读取~/.kube/config文件,并让您选择所需的文件。

https://github.com/ahmetb/kubectx

kubens

此工具允许您选择集群的默认命名空间。无论何时运行kubectl命令,都很难在每个命令中指定命名空间。此命令将帮助您在名称空间之间快速切换

https://github.com/ahmetb/kubectx

stern

这是另一个可以轻松查看特定部署的所有吊舱和容器日志的工具。船尾输出是彩色编码,容易区分不同吊舱和容器的原木。因此,使用stern而不是使用kubeclt logs命令很容易调试。

stern <deployment-name>

https://github.com/wercker/stern

下面是等效的kubectl命令。

kubectl logs-f deployemnet/nginx--all-containers=true

awsp

同样,这是一个在AWS帐户之间轻松切换的工具,无需手动配置默认配置文件。

https://github.com/johnnyopao/awsp

tfenv

如果您正在使用terraform创建基础结构,那么您通常会在一段时间内使用多个terraform版本。此工具帮助您选择terraform的当前活动版本,以及安装或卸载所需的版本。
tfenv使用0.13.0

https://github.com/tfutils/tfenv

tgenv

这相当于terragrunt的tfenv
tgenv使用0.28.3

aws-vault

一旦安装和配置AWS CLI,它通常以纯文本形式将访问密钥和机密存储在~/.AWS/credentials文件中,这不是很安全。相反,您可以使用aws-vault存储这些安全凭据,并用您喜欢的另一个密码锁定它。但是你必须在aws-vault终端下运行所有的aws帐户。
``aws-vault add profile name<<添加带有配置文件名的帐户详细信息
aws-vault exec profile aws sts get-caller-identity<<在aws-vault exec profile上运行任何aws CLI命令

https://github.com/99designs/aws-vault

安装bash PS1

这与将shell提示设置为显示有用的infromation没什么特别之处。例如,您可以将其配置为diplay当前连接的服务器名、用户名、kubernetes集群、AWS帐户等等。理念是在执行任何关键命令之前,了解我们所连接的环境。例如,某人可能连接到生产,但执行命令会减少其舞台或开发环境。这些bash提示将有助于最大限度地减少这些错误。
下面是一个示例,显示了颜色编码’[username@hostname://current-dir](git repo的分支)‘。这必须添加到bash用户的~/.bashrc中。

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\[\e[32m\][\[\e[m\]\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[32m\]\h\[\e[m\]:\[\e[36m\]\w\[\e[m\]\[\e[32m\]]\[\033[33m\]\$(parse_git_branch)\[\033[00m\]\[\e[m\]\[\e[32m\] >\[\e[m\] "

Kube-ps1

这允许您通过更新PS1在您的终端中显示当前的k8s上下文和命名空间(默认情况下)。好的是,它可以很容易地关闭和打开时,你需要它。

https://github.com/jonmosco/kube-ps1

Github cli

这只对使用Github作为源代码管理系统的人有效。Github有一个CLI工具,可以完成在Github web Portal上可以完成的大部分工作。但对我来说最有用的方法是从我当前的本地分支轻松创建拉请求。

gh pr create --title "Title for PR" --body "Detailed description of pr"

https://github.com/cli/cli

docker-credential-helper-ecr

如果您正在处理大量的docker图像创建,从Amazon容器注册中心推送和拉出图像,这是一个有用的工具,可以简化与ECR的身份验证。

helm-switcher

与tfenv/tgenv类似,您可以使用helm-switcher安装所需的helm版本,并轻松地在它们之间切换。您只需下载二进制文件并保存在可执行路径中。

https://github.com/tokiwong/helm-switcher

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。