Shawn Powers 发布的文章

这些年来,我已经写了许多关于 DevOps 工具的文章,也培训了这方面的人员。尽管这些工具很棒,但很明显,大多数都是按照开发人员的思路设计出来的。这也没有什么问题,因为以编程的方式接近配置管理是重点。不过,直到我开始接触 Ansible,我才觉得这才是系统管理员喜欢的东西。

喜欢的一部分原因是 Ansible 与客户端计算机通信的方式,是通过 SSH 的。作为系统管理员,你们都非常熟悉通过 SSH 连接到计算机,所以从单词“去”的角度来看,相对于其它选择,你更容易理解 Ansible。

考虑到这一点,我打算写一些文章,探讨如何使用 Ansible。这是一个很好的系统,但是当我第一次接触到这个系统的时候,不知道如何开始。这并不是学习曲线陡峭。事实上,问题是在开始使用 Ansible 之前,我并没有太多的东西要学,这才是让人感到困惑的。例如,如果您不必安装客户端程序(Ansible 没有在客户端计算机上安装任何软件),那么您将如何启动?

踏出第一步

起初 Ansible 对我来说非常困难的原因在于配置服务器/客户端的关系是非常灵活的,我不知道我该从何入手。事实是,Ansible 并不关心你如何设置 SSH 系统。它会利用你现有的任何配置。需要考虑以下几件事情:

  1. Ansible 需要通过 SSH 连接到客户端计算机。
  2. 连接后,Ansible 需要提升权限才能配置系统,安装软件包等等。

不幸的是,这两个考虑真的带来了一堆蠕虫。连接到远程计算机并提升权限是一件可怕的事情。当您在远程计算机上安装代理并使用 Chef 或 Puppet 处理特权升级问题时,似乎感觉就没那么可怕了。 Ansible 并非不安全,而是安全的决定权在你手中。

接下来,我将列出一系列潜在的配置,以及每个配置的优缺点。这不是一个详尽的清单,但是你会受到正确的启发,去思考在你自己的环境中什么是理想的配置。也需要注意,我不会提到像 Vagrant 这样的系统,因为尽管 Vagrant 在构建测试和开发的敏捷架构时非常棒,但是和一堆服务器是非常不同的,因此考虑因素是极不相似的。

一些 SSH 场景

1)在 Ansible 配置中,root 用户以密码进入远程计算机。

拥有这个想法是一个非常可怕的开始。这个设置的“优点”是它消除了对特权提升的需要,并且远程服务器上不需要其他用户帐户。 但是,这种便利的成本是不值得的。 首先,大多数系统不会让你在不改变默认配置的情况下以 root 身份进行 SSH 登录。默认的配置之所以如此,坦率地说,是因为允许 root 用户远程连接是一个不好的主意。 其次,将 root 密码放在 Ansible 机器上的纯文本配置文件中是不合适的。 真的,我提到了这种可能性,因为这是可以的,但这是应该避免的。 请记住,Ansible 允许你自己配置连接,它可以让你做真正愚蠢的事情。 但是请不要这么做。

2)使用存储在 Ansible 配置中的密码,以普通用户的身份进入远程计算机。

这种情况的一个优点是它不需要太多的客户端配置。 大多数用户默认情况下都可以使用 SSH,因此 Ansible 应该能够使用用户凭据并且能够正常登录。 我个人不喜欢在配置文件中以纯文本形式存储密码,但至少它不是 root 密码。 如果您使用此方法,请务必考虑远程服务器上的权限提升方式。 我知道我还没有谈到权限提升,但是如果你在配置文件中配置了一个密码,这个密码可能会被用来获得 sudo 访问权限。 因此,一旦发生泄露,您不仅已经泄露了远程用户的帐户,还可能泄露整个系统。

3)使用具有空密码的密钥对进行身份验证,以普通用户身份进入远程计算机。

这消除了将密码存储在配置文件中的弊端,至少在登录的过程中消除了。 没有密码的密钥对并不理想,但这是我经常做的事情。 在我的个人内部网络中,我通常使用没有密码的密钥对来自动执行许多事情,如需要身份验证的定时任务。 这不是最安全的选择,因为私钥泄露意味着可以无限制地访问远程用户的帐户,但是相对于在配置文件中存储密码我更喜欢这种方式。

4)使用通过密码保护的密钥对进行身份验证,以普通用户的身份通过 SSH 连接到远程计算机。

这是处理远程访问的一种非常安全的方式,因为它需要两种不同的身份验证因素来解密:私钥和密码。 如果你只是以交互方式运行 Ansible,这可能是理想的设置。 当你运行命令时,Ansible 会提示你输入私钥的密码,然后使用密钥对登录到远程系统。 是的,只需使用标准密码登录并且不用在配置文件中指定密码即可完成,但是如果不管怎样都要在命令行上输入密码,那为什么不在保护层添加密钥对呢?

5)使用密码保护密钥对进行 SSH 连接,但是使用 ssh-agent “解锁”私钥。

这并不能完美地解决无人值守、自动化的 Ansible 命令的问题,但是它确实也使安全设置变得相当方便。 ssh-agent 程序一次验证密码,然后使用该验证进行后续连接。当我使用 Ansible 时,这是我想要做的事情。如果我是完全值得信任的,我通常仍然使用没有密码的密钥对,但是这通常是因为我在我的家庭服务器上工作,是不是容易受到攻击的。

在配置 SSH 环境时还要记住一些其他注意事项。 也许你可以限制 Ansible 用户(通常是你的本地用户),以便它只能从一个特定的 IP 地址登录。 也许您的 Ansible 服务器可以位于不同的子网中,位于强大的防火墙之后,因此其私钥更难以远程访问。 也许 Ansible 服务器本身没有安装 SSH 服务器,所以根本没法访问。 同样,Ansible 的优势之一是它使用 SSH 协议进行通信,而且这是一个你用了多年的协议,你已经把你的系统调整到最适合你的环境了。 我不是宣传“最佳实践”的忠实粉丝,因为实际上最好的做法是考虑你的环境,并选择最适合你情况的设置。

权限提升

一旦您的 Ansible 服务器通过 SSH 连接到它的客户端,就需要能够提升特权。 如果你选择了上面的选项 1,那么你已经是 root 了,这是一个有争议的问题。 但是由于没有人选择选项 1(对吧?),您需要考虑客户端计算机上的普通用户如何获得访问权限。 Ansible 支持各种权限提升的系统,但在 Linux 中,最常用的选项是 sudosu。 和 SSH 一样,有几种情况需要考虑,虽然肯定还有其他选择。

1)使用 su 提升权限。

对于 RedHat/CentOS 用户来说,可能默认是使用 su 来获得系统访问权限。 默认情况下,这些系统在安装过程中配置了 root 密码,要想获得特殊访问权限,您需要输入该密码。使用 su 的问题在于,虽说它可以给了您完全访问远程系统,而您确实也可以完全访问远程系统。 (是的,这是讽刺。)另外,su 程序没有使用密钥对进行身份验证的能力,所以密码必须以交互方式输入或存储在配置文件中。 由于它实际上是 root 密码,因此将其存储在配置文件中听起来像、也确实是一个可怕的想法。

2)使用 sudo 提升权限。

这就是 Debian/Ubuntu 系统的配置方式。 正常用户组中的用户可以使用 sudo 命令并使用 root 权限执行该命令。 随之而来的是,这仍然存在密码存储或交互式输入的问题。 由于在配置文件中存储用户的密码看起来不太可怕,我猜这是使用 su 的一个进步,但是如果密码被泄露,仍然可以完全访问系统。 (毕竟,输入 sudosu - 都将允许用户成为 root 用户,就像拥有 root 密码一样。)

3) 使用 sudo 提升权限,并在 sudoers 文件中配置 NOPASSWD。

再次,在我的本地环境中,我就是这么做的。 这并不完美,因为它给予用户帐户无限制的 root 权限,并且不需要任何密码。 但是,当我这样做并且使用没有密码短语的 SSH 密钥对时,我可以让 Ansible 命令更轻松的自动化。 再次提示,虽然这很方便,但这不是一个非常安全的想法。

4)使用 sudo 提升权限,并在特定的可执行文件上配置 NOPASSWD。

这个想法可能是安全性和便利性的最佳折衷。 基本上,如果你知道你打算用 Ansible 做什么,那么你可以为远程用户使用的那些应用程序提供 NOPASSWD 权限。 这可能会让人有些困惑,因为 Ansible 使用 Python 来处理很多事情,但是经过足够的尝试和错误,你应该能够弄清原理。 这是额外的工作,但确实消除了一些明显的安全漏洞。

计划实施

一旦你决定如何处理 Ansible 认证和权限提升,就需要设置它。 在熟悉 Ansible 之后,您可能会使用该工具来帮助“引导”新客户端,但首先手动配置客户端非常重要,以便您知道发生了什么事情。 将你熟悉的事情变得自动化比从头开始自动化要好。

我已经写过关于 SSH 密钥对的文章,网上有无数的设置类的文章。 来自 Ansible 服务器的简短版本看起来像这样:

# ssh-keygen
# ssh-copy-id -i .ssh/id_dsa.pub [email protected]
# ssh [email protected]

如果您在创建密钥对时选择不使用密码,最后一步您应该可以直接进入远程计算机,而不用输入密码或密钥串。

为了在 sudo 中设置权限提升,您需要编辑 sudoers 文件。 你不应该直接编辑文件,而是使用:

# sudo visudo

这将打开 sudoers 文件并允许您安全地进行更改(保存时会进行错误检查,所以您不会意外地因为输入错误将自己锁住)。 这个文件中有一些例子,所以你应该能够弄清楚如何分配你想要的确切的权限。

一旦配置完成,您应该在使用 Ansible 之前进行手动测试。 尝试 SSH 到远程客户端,然后尝试使用您选择的任何方法提升权限。 一旦你确认配置的方式可以连接,就可以安装 Ansible 了。

安装 Ansible

由于 Ansible 程序仅安装在一台计算机上,因此开始并不是一件繁重的工作。 Red Hat/Ubuntu 系统的软件包安装有点不同,但都不是很困难。

在 Red Hat/CentOS 中,首先启用 EPEL 库:

sudo yum install epel-release

然后安装 Ansible:

sudo yum install ansible

在 Ubuntu 中,首先启用 Ansible PPA:

sudo apt-add-repository spa:ansible/ansible
(press ENTER to access the key and add the repo)

然后安装 Ansible:

sudo apt-get update
sudo apt-get install ansible

Ansible 主机文件配置

Ansible 系统无法知道您希望它控制哪个客户端,除非您给它一个计算机列表。 该列表非常简单,看起来像这样:

# file /etc/ansible/hosts

[webservers]
blogserver ansible_host=192.168.1.5
wikiserver ansible_host=192.168.1.10

[dbservers]
mysql_1 ansible_host=192.168.1.22
pgsql_1 ansible_host=192.168.1.23

方括号内的部分是指定的组。 单个主机可以列在多个组中,而 Ansible 可以指向单个主机或组。 这也是配置文件,比如纯文本密码的东西将被存储,如果这是你计划的那种设置。 配置文件中的每一行配置一个主机地址,并且可以在 ansible_host 语句之后添加多个声明。 一些有用的选项是:

ansible_ssh_pass
ansible_become
ansible_become_method
ansible_become_user
ansible_become_pass

Ansible 保险库 Vault

(LCTT 译注:Vault 作为 ansible 的一项新功能可将例如密码、密钥等敏感数据文件进行加密,而非明文存放)

我也应该注意到,尽管安装程序比较复杂,而且这不是在您首次进入 Ansible 世界时可能会做的事情,但该程序确实提供了一种加密保险库中的密码的方法。 一旦您熟悉 Ansible,并且希望将其投入生产,将这些密码存储在加密的 Ansible 保险库中是非常理想的。 但是本着先学会爬再学会走的精神,我建议首先在非生产环境下使用无密码方法。

系统测试

最后,你应该测试你的系统,以确保客户端可以正常连接。 ping 测试将确保 Ansible 计算机可以 ping 每个主机:

ansible -m ping all

运行后,如果 ping 成功,您应该看到每个定义的主机显示 ping 的消息:pong。 这实际上并没有测试认证,只是测试网络连接。 试试这个来测试你的认证:

ansible -m shell -a 'uptime' webservers

您应该可以看到 webservers 组中每个主机的运行时间命令的结果。

在后续文章中,我计划开始深入 Ansible 管理远程计算机的功能。 我将介绍各种模块,以及如何使用 ad-hoc 模式来完成一些按键操作,这些操作在命令行上单独处理都需要很长时间。 如果您没有从上面的示例 Ansible 命令中获得预期的结果,请花些时间确保身份验证可以工作。 如果遇到困难,请查阅 Ansible 文档获取更多帮助。


via: http://www.linuxjournal.com/content/ansible-automation-framework-thinks-sysadmin

作者:Shawn Powers 译者:Flowsnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你在新的一年里需要刷哪些技能?

成为 Linux 专家的一个问题是“专家”的定义在不断变化。当我进入 Linux 世界的时候,那时认为成为一个 Linux 专家,你需要能够编译自己的内核。天啊,如果你想在笔记本电脑上使用 Linux,即便你只是用户,你也必须编译一个自定义内核。 如今编译自己的内核通常是浪费时间。这不是说它并不重要,但在开源世界,我们建立在他人成功的基础之上,而 Linux 发行版为我们提供了运行良好的内核。虽然“专家”的定义并不总是那么剧烈变化,但对 IT 专业人员的需求每年都在变化。

下面是 2017 年 Linux 专业人员的四个重要技能:

1、 安全

我不是在讨论安全专家或安全顾问。这些职位和服务当然很重要,但是随着联网设备渗透到我们生活的每一个方面,我们需要在我们做出的每一个决定中都具有安全意识。今年,我的妻子和我买了一台洗衣机和一台冰箱,它们都配备了蓝牙。黑客攻入我的漂洗系统的想法可能看起来很傻,但这都是潜在的攻击点。

当激活工作、家庭或我们的口袋中的任何系统时,我们应该考虑它们可能引发的安全问题。而且因为像联网烤面包机这样的物品不太可能及时获得固件升级,我们需要按照普通设备可能遭到破坏的思路来设计其余的系统。相比以前任何时候,我们更需要考虑来自防火墙内的攻击。不要让你的文件服务器被你的搅拌器破坏!

2、 DevOps

DevOps 不再是一个新概念。在过去两三年里,我们一直鼓励员工学习 DevOps,以便他们能够在工作中取得成功。这是个好建议,但这并不意味着我们应该完全依赖自动化工具来完成我们的工作。Chef、Puppet、Ansible、Salt Stack 及类似的工具是美好的,但我们需要了解背后发生了什么,所以当发生一些不可避免的错误,我们应该知道如何解决它。

使用 DevOps 的编程方法来计算,我们仍然需要能够维护、修复和理解在代码层之下运行的系统的人。没有 Linux 专家,云计算将是一个可怕的地方,即使那个云在你自己的机房里。

3、 开发

作为系统管理员,20 年来,我从来没有时间学习编程。这听起来可能是一个借口,但这是事实。我所有的开发技能就是基本的脚本编写,以帮助我更快工作。不过,那些日子已经结束了。虽然我们需要在 DevOps 世界中拥有系统管理技能,但我们还需要系统管理员拥有编程技能。

如果你是一个像我一样的老练的系统管理员,你可能已经采用 DevOps 并每天使用它。如果你真的想要胜过他人,你需要学习如何以编程方式解决问题,并且不要认为 Chef 或 Puppet 代码只是配置文件。 每个 IT 专业人员都至少需要掌握编程的概念,因为 DevOps 代码至少在某种程度上抽象了 IT 的每个方面。

4、 软技能

通常,我们在准备职业生涯时所考虑的最后一件事是所谓的 软技能 - 社交和沟通技巧 - 但是它们可能是最有可能决定你走向成功的技能。无论你正在寻找一份新工作,还是试图适应当前职业生涯的变化,软技能是至关重要的。

划分 IT 各个领域的标准是交错的,并且良好的沟通能力使得这些模糊的分野成为一个有利条件,而不是绊脚石。我们正生活在一个开发人员围绕着服务器,而运维团队编写 Ruby 代码来维护服务器农场的世界里。这些都是 IT 中的大胆的新思想,如果人们不能在不同部门间很好的沟通,工作场所将迅速有敌对气氛。此外,IT 人员总是需要与其他业务领域的人员进行有效沟通。而且,现在比以往有更大的需求。

你计划在 2017 年里添加什么到你的技能中?在评论栏中让我们知道吧。


作者简介:

Shawn Powers - 自 2009 年起是 CBT Nuggets (www.cbtnuggets.com) 的一名 IT 训练员,专于 Linux、Chef 及为大规模网络集成多个平台。他在 2016 年 12 月发布了一个在线高级 Linux 认证课程(LPIC-2)。


via: https://opensource.com/article/17/1/yearbook-4-hot-skills-linux-pros-2017

作者:Shawn Powers 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果SSH是系统管理员世界的"瑞士军刀"的话,那么Nmap就是一盒炸药。炸药很容易被误用然后将你的双脚崩掉,但是也是一个很有威力的工具,能够胜任一些看似无法完成的任务。

大多数人想到Nmap时,他们想到的是扫描服务器,查找开放端口来实施攻击。然而,在过去的这些年中,这样的超能力在当你管理服务器或计算机遇到问题时也是非常的有用。无论是你试图找出在你的网络上有哪些类型的服务器使用了指定的IP地址,或者尝试锁定一个新的NAS设备,以及扫描网络等,都会非常有用。

下图显示了我的QNAP NAS的网络扫描结果。我使用该设备的唯一目的是为了NFS和SMB文件共享,但是你可以看到,它包含了一大堆大开大敞的端口。如果没有Nmap,很难发现机器到底在运行着什么玩意儿。

网络扫描

另外一个可能你没想到的用途是用它来扫描一个网络。你甚至根本不需要root的访问权限,而且你也可以非常容易地来指定你想要扫描的网络地址块,例如输入:

nmap 192.168.1.0/24

上述命令会扫描我的局域网中全部的254个可用的IP地址,让我可以知道那个是可以Ping的,以及那些端口是开放的。如果你刚刚在网络上添加一个新的硬件,但是不知道它通过DHCP获取的IP地址是什么,那么此时Nmap就是无价之宝。例如,上述命令在我的网络中揭示了这个问题:

Nmap scan report for TIVO-8480001903CCDDB.brainofshawn.com (192.168.1.220)
Host is up (0.0083s latency).
Not shown: 995 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
443/tcp  open   https
2190/tcp open   tivoconnect
2191/tcp open   tvbus
9080/tcp closed glrpc

它不仅显示了新的Tivo 设备,而且还告诉我那些端口是开放的。由于它的可靠性、可用性以及“黑边帽子”的能力,Nmap获得了本月的 <<编辑推荐>>奖。这不是一个新的程序,但是如果你是一个linux用户的话,你应该玩玩它。


via: http://www.linuxjournal.com/content/nmap%E2%80%94not-just-evil

作者:Shawn Powers 译者:theo-l 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我日常工作中使用的是OS X。我能容忍它很大程度上是因为它的终端。如果我不能在黑色背景绿色文字的终端下工作,我想我会疯了。不幸的是,OS X 没有我需要的全部命令行工具。Homebrew的到来拯救了我。

Homebrew扮演了OS X中所缺乏的包管理器的角色。命令的使用很像apt-get,它能够安装无数的应用。一个最好的例子是wget。我很惊讶OS X中没有包含wget,但是homebrew中有,很简单就安装上了。

最棒的是homebrew在/usr/local文件夹下安装软件。你不必担心homebrew会破坏你的系统,因为它不会访问/usr/local之外的其他文件。OSX系统更新不会覆盖你的程序,并且/usr/local/bin已经在PATH中,使用homebrew安装的程序可以直接工作。

homebrew使用ruby管理它的包和功能,但是使用它不需要任何编程知识。并且安装过程只需要在命令行中复制粘贴就好了。如果你使用的是OS X,但是你希望像在Linux中那样方便地安装,就试一试homrbrew吧:http://brew.sh


via: http://www.linuxjournal.com/content/non-linux-foss-homebrew

作者:Shawn Powers 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

又到了Linux Journal杂志刊发2014读者选择奖的时候了!鉴于去年的形式好评如潮,因此我们仍沿续旧年格式,让你的意见再次得到回响。虽然有些地方我们会稍加评论,不过基本上还是以报道结果为主。以下敬请欣赏本年度读者选择奖名单!

我们希望读者选择奖一年好似一年。如果你对新分类有任何建议,或者有任何评价与反馈,都可以通过以下方式联系我们:http://www.linuxjournal.com/contact

如欲了解完整获奖名单,请查阅本杂志2014年12月刊。

最佳Linux发行版

虽然本年度基于Debian/Ubuntu的发行版获得最多票数,但“最佳Linux发行版”分类有点类似于“最好吃的比萨”--就算得票垫底,但它仍算是比萨呀!选择Linux不会错的,而投票之五花八门,恰恰呈现出开源世界里的选择多样性。

  • Ubuntu 16.5%
  • Debian 16.4%
  • Linux Mint 11%
  • Arch Linux 8.5%
  • Fedora 8.3%
  • CentOS 6%
  • openSUSE 5.3%
  • Kubuntu 4.1%
  • Gentoo 2.9%
  • Slackware 2.7%
  • Xubuntu 2.5%
  • 其它 2.3%
  • Red Hat Enterprise Linux 1.6%
  • NixOS 1.4%
  • elementary OS 1.3%
  • Lubuntu 1.2%
  • CrunchBang 1%
  • Mageia .7%
  • LXLE .4%
  • Tails .4%
  • Android-x86 .3%
  • Bodhi Linux .3%
  • Chakra .3%
  • Kali Linux .3%
  • PCLinuxOS .3%
  • SolydK .3%
  • Mandriva .1%
  • Oracle Linux .1%

最佳Linux移动系统

安卓在移动领域是如此的举足轻重,所以我们决定让安卓的各种版本独立参与投票。因此,尽管以下系统本质上属于安卓,但我们仍沿用其名而不改称安卓,因为这样更加一目了然。

  • Stock Android 37.1%
  • Sailfish OS 27.6%
  • CyanogenMod 20.2%
  • 其它 3%
  • Ubuntu Phone 3%
  • Amazon Fire OS 1.5%
  • Ubuntu for Android 1.4%
  • Replicant .8%
  • Tizen .8%

最佳Linux智能手机厂商

  • Samsung 29%
  • Jolla 26.7%
  • Nexus 16.5%
  • 其它 7.1%*
  • HTC 7%
  • LG 5.3%
  • Sony 3.7%
  • Nokia 1.8%
  • Huawei 1.4%
  • GeeksPhone 1%
  • Amazon .6%

*在"其它"当中,摩托罗拉获得最多提名,其次是一加。

最佳Linux平板

  • Google Nexus 7 35.3%
  • Google Nexus 10 14.8%
  • Samsung Galaxy Tab 14%
  • Samsung Galaxy Note 9.8%
  • ASUS Transformer Pad 8.4%
  • 其它 6.4%
  • Kindle Fire HD 4.7%
  • ASUS MeMO Pad 2%
  • Dell Venue 1.6%
  • Acer Iconia One 1.4%
  • Samsung Galaxy Note Edge .9%
  • Ekoore Python S3 .7%

最佳基于Linux的其它配件(不含智能手机或平板)

我们是一群树莓派粉,如假包换!不过说真的,这怎么能怪我们呢?树莓派又出了新款B+,让原本就美妙绝伦的树莓派愈发的标致可人。并非我有未卜先知之功,但我对明年的冠军早就心中有数了。

  • Raspberry Pi 71.4%
  • BeagleBone Black 8.1%
  • 其它 4.3%*
  • Lego Mindstorms Ev3 3.7%
  • Moto 360 3.4%
  • Cubieboard 1.7%
  • Parrot A.R Drone 1.7%
  • Samsung Gear S 1.4%
  • Yamaha Motif XF8 1.1%
  • Nvidia Jetson-K1 Development System .8%
  • Cloudsto EVO Ubuntu Linux Mini PC .5%
  • VoCore Open Hardware Computer .5%
  • LG G Watch .4%
  • RaZberry .4%
  • VolksPC .4%
  • IFC6410 Pico-ITX Board .2%
  • JetBox 5300 .1%

*在“其它”当中,提名最多是Odroid与CuBox。

最佳笔记本厂商

本分类原本用于评价哪个厂商对Linux最花心思,不过谢天谢地,如今大多数笔记本运行起Linux来还是相当不错的。因此无需我们将重点放在“嗯,这台能运行Linux”这种问题上面,而可以切切实实地看到精华之作。把眼光放长远些。

  • Lenovo 32%
  • ASUS 19.3%
  • Dell 18.5%
  • System76 10.6%
  • 其它 7.9%*
  • Acer 4.5%
  • ThinkPenguin 1.9%
  • LinuxCertified 1.8%
  • ZaReason 1.6%
  • EmperorLinux 1.5%
  • CyberPower .3%
  • Eurocom .1%

*在“其它”当中,提名最多的(依次)是运行Linux的苹果、惠普、东芝以及三星。

最佳内容管理系统

  • WordPress 34.7%
  • Drupal 25.3%
  • Joomla! 11.1%
  • MediaWiki 10.5%
  • 其它 10%*
  • Alfresco 4.3%
  • WebGUI 1.3%
  • ikiwiki 1.1%
  • eZ publish .7%
  • Wolf CMS .4%
  • Elgg .3%
  • Blosxom .2%

*在“其它”当中,提名最多的(依次)是DokuWiki, Plone, Django 以及 Typo3。

最佳对Linux友好的虚拟主机公司

提到虚拟主机,这年头要找到不对Linux友好的公司那是相当之难。事实上,要找到一家提供Windows的主机服务商才是一种挑战。这一类别的冠军(“其它”)就显而易见的说明了这一问题,或许设一个“最差虚拟主机”分类更加有用!

  • 其它 22.8%*
  • Amazon 22.5%
  • Rackspace 13.1%
  • Linode 10.4%
  • GoDaddy.com 6.5%
  • OVH 5.6%
  • DreamHost 5.4%
  • 1&1 4.8%
  • LAMP Host 2.9%
  • Hurricane Electric 2.6%
  • Liquid Web .6%
  • RimuHosting .6%
  • Host Media .5%
  • Savvis .5%
  • Blacknight Solutions .4%
  • Netfirms .4%
  • Prgmr .4%

*在“其它”当中,提名最多的(依次)是Digital Ocean (压倒性优势), Hetzner, BlueHost 以及 WebFaction。

最佳浏览器

Firefox显著优势拨得今年的头筹。即使以Chrome加Chromium计算,Firefox仍位居榜首。我们曾经担心,Firefox死忠会悄然流失,不过还好,Firefox依然宝马未老,仍是一款快速、可行以及兼容度极佳的浏览器。

  • Firefox 53.8%
  • Chrome 26.9%
  • Chromium 8.1%
  • Iceweasel 4%
  • Opera 3%
  • 其它 2%
  • SeaMonkey .8%
  • rekonq .5%
  • dwb .4%
  • QupZill .4%
  • Dillo .2%

最佳电邮客户端

如果我没有亲身了解到身边有多少铁杆极客粉的话,我也许会指责Kyle Rankin投票有作弊嫌疑。他的最爱--Mutt电邮客户端并未登顶,但是对于一个没有图形界面的程序来说,获得第三名也算是个比较骄人的成绩了。

  • Mozilla Thunderbird 44.4%
  • Gmail 24.7%
  • Mutt 6.8%
  • Evolution 5.5%
  • KMail 5.3%
  • 其它 3.2%
  • Claws Mail 2.2%
  • Zimbra 2%
  • Alpine 1.8%
  • Geary 1.7%
  • SeaMonkey 1%
  • Opera Mail .9%
  • Sylpheed .4%

最佳音频编辑工具

  • Audacity 69.1%
  • FFmpeg 10.8%
  • VLC 9.7%
  • Ardour 4.9%
  • 其它 1.9%
  • SoX 1.3%
  • Mixxx 1.1%
  • LMMS .7%
  • Format Junkie .5%

最佳音频播放器

VLC登上视频播放器分类的榜首(见下文)应该是毫无悬念的,但让人大跌眼镜的是,它居然在音频播放器分类中也有不俗的成绩。或许它可以考虑成为一站式媒体播放器。不管怎样,我们都乐见其取得好成绩。

  • VLC 25.2%
  • Amarok 15.3%
  • Rhythmbox 10.4%
  • Clementine 8.6%
  • MPlayer 6.1%
  • Spotify 5.9%
  • Audacious 5.5%
  • Banshee 4.6%
  • 其它 4%*
  • XBMC 3.1%
  • foobar2000 3%
  • Xmms 2.4%
  • DeaDBeeF 1.2%
  • MOC .9%
  • cmus .8%
  • Ncmpcpp .8%
  • Guayadeque .6%
  • Mixxx .4%
  • MPC-HC .4%
  • Subsonic .4%
  • Nightingale .3%
  • Decibel Audio Player .2%

*在"其它"当中,Quod Libet获得最多提名。

最佳视频播放器

  • VLC 64.7%
  • MPlayer 14.5%
  • XBMC 6.4%
  • Totem 2.7%
  • 其它 2.7%*
  • Plex 2%
  • Kaffeine 1.9%
  • mpv 1.6%
  • MythTV 1.6%
  • Amarok 1.4%
  • Xmms .3%
  • Daum Potplayer .2%
  • Clementine .1%

*在“其它”当中,提名最多是SMPlayer。

最佳视频编辑器

再次证明了我们的读者群深具极客色彩。我们未指定“非线性编辑器”,因此就转码技术而言,VLC在视频编辑类别中勉强获胜。干得好,VLC,干得好!

  • VLC 17.5%
  • Kdenlive 16.4%
  • Blender 15.1%
  • Avidemux 13.2%
  • OpenShot 13.2%
  • Cinelerra 7.5%
  • PiTiVi 4.9%
  • LightWorks 4.8%
  • 其它 4.7%
  • LiVES 1.4%
  • Shotcut .6%
  • Jahshaka .4%
  • Flowblade .4%

最佳云存储

  • Dropbox 30.5%
  • ownCloud 23.6%
  • Google Drive 16%
  • rsync 8.3%
  • 其它 7.5%*
  • Amazon S3 6.6%
  • SpiderOak 4.4%
  • Box 1.8%
  • Copy 1%
  • AjaXplorer .3%

Dropbox在这一领域曾经独步天下,几无对手,虽然这次仍为头魁,但优势已经不那么明显了。Dropbox的方便与稳定无可否认,但是将你的宝贵数据托管在ownCloud上,可管可控,也让ownCloud登上第二名的宝座。

*在“其它”当中,提名最多是 Younited 与 MEGA。当然很多人可能会说“非万不得已时不会选择云存储/我的文件都是存在本地”。

最佳Linux游戏

我很少玩游戏,所以每年我都特期待这一类别排名,希望可以从中找到最受欢迎的游戏,以供闲暇之需。看到NetHack排名这么靠前,我倒觉得挺开心的,尤其是在联想到竞争对手后更是心满意足。徘徊在让我们这些老派的龙与地下城玩家痴迷的随机通道确实有点意思。

  • Civilization 5 26.5%
  • 其它 23.5%*
  • Team Fortress 2 8.7%
  • NetHack 8.4%
  • X-Plane 10 7.1%
  • Dota 6.1%
  • Bastion 5.4%
  • Scorched 3D 3.7%
  • Destiny 3.6%
  • Ultima IV 1.9%
  • FreeCol 1.8%
  • Kpat 1.4%
  • FreeOrion 1.1%
  • Ryzom .9%

*在“其它”当中,提名最多的(依次)是Minecraft, 0 A.D., Frozen Bubble, Battle for Wesnoth, Portal 以及 Counter Strike。

最佳虚拟方案

我认为与Vagrant的关系大大带动了Oracle旗下VirtualBox的普及。当然,Vagrant也与其它虚拟平台合作,但自从其与VirtualBox无缝结合后,我认为对VirtualBox是极大提升。虚拟化实现系统是如此的高效与可靠,从裸机开始重构系统的方案几近历史。

  • Oracle VM VirtualBox 33.4%
  • VMware 22.3%
  • KVM 21.1%
  • XEN 5.7%
  • QEMU 5.3%
  • OpenStack 4.9%
  • 其它 4.2%*
  • OpenVZ 1.7%
  • Linux-VServer 1.3%
  • Symantec Workspace Virtualization .1%

*在“其它”当中,提名最多的依次是Docker, ProxMox 与 LXC。

最佳监控应用

  • Nagios 27.1%
  • Wireshark 20.7%
  • htop 12.3%
  • Zabbix 10.5%
  • 其它 8.6%*
  • Zenoss 6.2%
  • Munin 3.4%
  • PC Monitor 2.8%
  • New Relic 1.9%
  • Opsview 1.2%
  • SaltStack 1%
  • NTM (Network Traffic Monitor) .7%
  • xosview .7%
  • Manage Engine .5%
  • FlowViewer .3%
  • Circonus .2%
  • SysPeek .2%

*在“其它”当中,提名最多是Icinga 与 OpenNMS。

最佳开发运维配置管理工具

Git能拿到本类别第一名倒是蛮有趣的,虽然针对配置文件使用标准版本控制工具当然无可厚非,但我总觉得它应该配合Chef或Puppet一起使用。至少开发运维(DevOps)让我们这些执拗的老派系统管理员象对待代码一样处理配置文件。版本控制真令人难以置信,这一点似乎绝大多数读者均无异议。

  • Git 39.4%
  • Puppet 17.2%
  • Ansible 8.9%
  • cron jobs 8.8%
  • Subversion 7.6%
  • Chef 5%
  • SaltStack 5.4%
  • 其它 4.6%*
  • CFEngine 3%

*在“其它”当中,提名最多是 NixOps。

最佳编程语言

  • Python 30.2%
  • C++ 17.8%
  • C 16.7%
  • Perl 7.1%
  • Java 6.9%
  • 其它 4.6%
  • Ruby 4.3%
  • Go 2.4%
  • JavaScript 2.4%
  • QML 2.2%
  • Fortran 1.4%
  • Haskell 1.4%
  • Lisp 1.2%
  • Erlang .6%
  • Rust .6%
  • D .4%
  • Hack .1%

*在“其它”当中,提名最多的依次是Scala, PHP 以及 Clojure。

最佳脚本语言

Python强悍无比,无论在脚本及编程分类都有大量拥趸。对于象我这样懂Bash以及一点PHP皮毛的人来说,很明显在我一头扎进开发过程中,我需要重点突破。敢说空格无用?我--空格来也!

  • Python 37.1%
  • Bash/Shell scripts 27%
  • Perl 11.8%
  • PHP 8.4%
  • JavaScript 6.7%
  • Ruby 4.9%
  • 其它 2.1%
  • Lua 2%

最佳Linux/开源新产品/新项目

Docker无疑是大赢家,当之无愧--游戏规则改变者嘛。 Jolla/Sailfish也小受欢迎,真是令人欣慰。我们爱安卓,不过多个选择不正是我们作为开源鼓手所提倡的一个重要方面吗。

  • Docker 28%
  • Jolla and Sailfish OS 19%
  • LibreOffice 7%
  • ownCloud 5%
  • Steam 5%
  • Zenoss Control Center 5%
  • Raspberry Pi 4%
  • Git 4%
  • Apache Cordova/OpenOffice/Spark/Tika 3%
  • Ansible 2%
  • Elementary OS 2%
  • OpenStack 2%
  • Zabbix 2%
  • CoreOS 2%
  • Firefox OS 2%
  • KDE Connect 1%
  • NixOS and NixOps 1%
  • Open Media Vault 1%

你用Linux做过的最酷的事情

这是读者选择奖里我最钟爱的新分类。想象一下你参加某次Linux会议,期间询问人们他们用Linux做过的最酷的事情。这里所做的与之大同小异!这里我们仅列出部分我们比较喜欢的,如欲了解完整列表,请访问:http://www.linuxjournal.com/rc2014/coolest

注:最常见的答案是:“使用它”;“挽救数据/照片/导致Windows 机器罢工的任何东西”;“说服朋友/家人/业务转向使用Linux”;“学习”;“讲授”;“获得工作”;“家庭自动化”;“构建家庭媒体服务器”。下表是我们选出的并非最常见的答案,而是一些比较具体与有个性的答案。

  • 在上世纪90年代中期建立procmail垃圾邮件预过滤规则。
  • 450-节点计算集群。
  • 7.1 通道前置放大器(集成Mopidy音乐播放器)。
  • Linux机器人 (参加Eurobot年度比赛)。
  • 无意间打印到错误的大陆。
  • 视频同步时增加音频通道。
  • 使用自已编写的代码分析NASA卫星数据。
  • 远程逗着猫玩。
  • 通过声音以及移动应用自动控制家里整个灯光设置。
  • 窗台植物自动浇水系统。
  • 浴室收音机。
  • 配制啤酒。
  • 创建了一个运行在国际空间站的应用。
  • 为某大型收费高速公路系统建立一套实时收费系统。
  • 自己装配智能手机。
  • 使用树莓派建立基于网络的家庭报警系统。
  • 树莓派集群破解加密的办公文档。
  • 控制我的Parrot无人机。
  • 控制186台风力涡轮机的通信。
  • 在Linux下使用Stellarium控制我的米德望远镜。
  • 用一台十几年的老笔记本转换卡带式家庭视频的格式。
  • 在靠近北极地区创建网状网络。
  • 使用无线数据发射器创建海洋环境下的传感器浮标。
  • 发现新行星。
  • 修复位于美国丹佛的jabber服务器, 而我当时却身在约丹安曼一家酒店大堂。
  • 得到一张Linus亲笔签名的Red Hat 5.0 CD。
  • 入侵我的咖啡机,在咖啡做好后给我一条消息。
  • 给我女儿介绍乐高机器人EV3。
  • 监控酒窖温度与湿度,过热或过温时开门。
  • 用树莓派代替温泉浴缸上的控制器。
  • 使用脚本连接四天每隔15秒开关一次同事的CD托盘。
  • 使用LFS系统为一家全国性石油公司迁移ACH自动转帐系统。
  • 身在其它城市冲我家里的马桶。
  • 远程控制鸡舍门。
  • 使用树莓派为16个站点部署基于网络的洒水器控制器(并控制水池与庭院灯光)。
  • 链接SSH通道通过三级跳连接家与工作(因网络设置方面的限制)。
  • 建立一套系统,监控可再生能源的安装部分:两套固定的太阳能电池阵,一套两轴太阳跟踪太阳能电池阵,以及一台风力涡轮机。生产以及天气数据实时显示在网络站点。
  • 还是在“猫”时代,我用电脑每天早上叫醒我女朋友去上班。
  • 使用一个Wii摇控器,通过蓝牙将我的笔记本作为红外摄像机,侦测我女儿的旋转木马的运动,以及控制视频游戏。

via: http://www.linuxjournal.com/rc2014

作者:Shawn Powers 译者:yupmoon 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出