对DevOps工程师有用的CLI工具
这些是我正在使用的工具,并从我的同事那里观察/学习到的。使用正确的工具和技术将大大提高我们的生产力,并为我们的角色带来更多的价值。这里列出的一些是非常明显的,但为了完整起见,我在这里添加了它们。我想听听你在评论部分一直使用的类似工具。
大多数这些工具都是开源的,确保使用它们不会违反公司的任何政策
这些是要安装在工作站或笔记本电脑上的工具,但不能安装在服务器上
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"
docker-credential-helper-ecr
如果您正在处理大量的docker图像创建,从Amazon容器注册中心推送和拉出图像,这是一个有用的工具,可以简化与ECR的身份验证。
helm-switcher
与tfenv/tgenv类似,您可以使用helm-switcher安装所需的helm版本,并轻松地在它们之间切换。您只需下载二进制文件并保存在可执行路径中。
- 点赞
- 收藏
- 关注作者
评论(0)