2016年4月

  • Ubuntu 16.04 中将提供 Docker 1.10,支持多种系统架构的 Docker 镜像,这意味着你可以在各种物联网设备上运行 Ubuntu,此外也支持 ARM 服务器、 IBM POWER8 和 OpenPOWER 等。同时,通过 Ubuntu Fan Networking 可以让用户跨网络连接到镜像。
  • 如果你是 Gentoo 和 Funtoo 用户,同时又不喜欢 systemd,那么你现在终于可以使用免 systemd 的 GNOME 了。这个 GNOME Without Systemd 项目刚刚于 4/16 发布,支持 GNOME 3.14、3.16、3.18 和 3.20。它采用了OpenRC 初始化系统、ConsoleKit 框架、UPower 电源管理等。
  • JBoss Java 应用平台上的一个漏洞已导致 2100 台服务器受到了勒索软件 SamSam 感染,有多达 320 万的服务器处于风险之中。
  • 上古卷轴3 的开源版重制版 OpenMW 发布了 0.39 版。
  • Canonical 发布了 Snappy 2.0,为即将发布的 Ubuntu Core 16.04 LTS 做好了准备。
  • Budgie-Remix 发行版是一个以 Solus 项目的 Budgie 桌面环境构建的新的发行版,最近发布了其第一个 RC 版本。Budgie-Remix 希望可以成为一个 Ubuntu 官方分支,不过看起来至少在 Ubuntu 16.10 发布之前还不大可能。
  • 基于 Slackware 的 Zenwalk 发行版发布了其 8.0 的第一个 RC 版本。
  • Ubuntu 16.04 中会通过提醒来提示用户有新的软件更新。
  • ubuntuBSD 项目有了自己的主页:ubuntubsd.org,该项目还处于早期开发期,已经发布了5个 beta 版本
  • openSUSE 的滚动版 Tumbleweed 更新了 KDE Plasma 5.6.2、Frameworks 5.21 和 Mesa 11.2.0。

Linux 基金会已经发起了一个全新的 LFCS( Linux 基金会认证系统管理员 Linux Foundation Certified Sysadmin )认证,旨在让来自世界各地的人有机会参加到 LFCS 测试,获得关于有能力在 Linux 系统中执行中级系统管理任务的认证。该认证包括:维护正在运行的系统和服务的能力、全面监控和分析的能力以及何时向上游团队请求支持的决策能力。

Linux Foundation Certified Sysadmin – Part 6

LFCS 系列第六讲

以下视频介绍了 Linux 基金会认证程序。

本讲是系列教程中的第六讲,在这一讲里,我们将会解释如何将分区组装为 RAID 设备——创建和管理系统备份。这些都是 LFCS 认证中的必备知识。

了解RAID

这种被称为独立磁盘冗余阵列(Redundant Array of Independent Disks)(RAID)的技术是将多个硬盘组合成一个单独逻辑单元的存储解决方案,它提供了数据冗余功能并且改善硬盘的读写操作性能。

然而,实际的容错和磁盘 I/O 性能硬盘取决于如何将多个硬盘组装成磁盘阵列。根据可用的设备和容错/性能的需求,RAID 被分为不同的级别,你可以参考 RAID 系列文章以获得每个 RAID 级别更详细的解释。

我们选择用于创建、组装、管理、监视软件 RAID 的工具,叫做 mdadm (multiple disk admin 的简写)。

---------------- Debian 及衍生版 ----------------
# aptitude update && aptitude install mdadm
---------------- Red Hat 和基于 CentOS 的系统 ----------------
# yum update && yum install mdadm
---------------- openSUSE 上 ----------------
# zypper refresh && zypper install mdadm #

将分区组装成 RAID 设备

组装已有分区作为 RAID 设备的过程由以下步骤组成。

1. 使用 mdadm 创建阵列

如果先前其中一个分区已经格式化,或者作为了另一个 RAID 阵列的一部分,你会被提示以确认创建一个新的阵列。假设你已经采取了必要的预防措施以避免丢失重要数据,那么可以安全地输入 Y 并且按下回车。

# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

Creating RAID Array

创建 RAID 阵列

2. 检查阵列的创建状态

在创建了 RAID 阵列之后,你可以检查使用以下命令检查阵列的状态。

# cat /proc/mdstat
or
# mdadm --detail /dev/md0    [More detailed summary]

Check RAID Array Status

检查 RAID 阵列的状态

3. 格式化 RAID 设备

如本系列第四讲所介绍的,按照你的需求/要求采用某种文件系统格式化你的设备。

4. 监控 RAID 阵列服务

让监控服务时刻监视你的 RAID 阵列。把# mdadm --detail --scan命令输出结果添加到 /etc/mdadm/mdadm.conf(Debian及其衍生版)或者/etc/mdadm.conf(Cent0S/openSUSE),如下。

# mdadm --detail --scan

Monitor RAID Array

监控 RAID 阵列

# mdadm --assemble --scan     [Assemble the array]

为了确保服务能够开机启动,需要以 root 权限运行以下命令。

Debian 及其衍生版

Debian 及其衍生版能够通过下面步骤使服务默认开机启动:

# update-rc.d mdadm defaults

/etc/default/mdadm 文件中添加下面这一行

AUTOSTART=true

CentOS 和 openSUSE(systemd-based)

# systemctl start mdmonitor
# systemctl enable mdmonitor

CentOS 和 openSUSE(SysVinit-based)

# service mdmonitor start
# chkconfig mdmonitor on

5. 检查RAID磁盘故障

在支持冗余的的 RAID 级别中,在需要时会替换故障的驱动器。当磁盘阵列中的设备出现故障时,仅当存在我们第一次创建阵列时预留的备用设备时,磁盘阵列会将自动启动重建。

Check RAID Faulty Disk

检查 RAID 故障磁盘

否则,我们需要手动将一个额外的物理驱动器插入到我们的系统,并且运行。

# mdadm /dev/md0 --add /dev/sdX1

/dev/md0 是出现了问题的阵列,而 /dev/sdx1 是新添加的设备。

6. 拆解一个工作阵列

如果你需要使用工作阵列的设备创建一个新的阵列,你可能不得不去拆解已有工作阵列——(可选步骤)

# mdadm --stop /dev/md0                 #  Stop the array
# mdadm --remove /dev/md0             # Remove the RAID device
# mdadm --zero-superblock /dev/sdX1     # Overwrite the existing md superblock with zeroes

7. 设置邮件通知

你可以配置一个用于发送通知的有效邮件地址或者系统账号(确保在 mdadm.conf 文件中有下面这一行)。——(可选步骤)

MAILADDR root

在这种情况下,来自 RAID 后台监控程序所有的通知将会发送到你的本地 root 账号的邮件箱中。其中一个类似的通知如下。

说明:此次通知事件和第5步中的例子相关。此处一个设备被标志为错误,并且一个空闲的设备自动地被 mdadm 加入到阵列。我们用完了所有“健康的”空闲设备,因此我们得到了通知。

RAID Monitoring Alerts

RAID 监控通知

了解 RAID 级别

RAID 0

阵列总大小是最小分区大小的 n 倍,n 是阵列中独立磁盘的个数(你至少需要两个驱动器/磁盘)。运行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 0 阵列。

# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

常见用途:用于支持性能比容错更重要的实时应用程序的设置

RAID 1 (又名镜像)

阵列总大小等于最小分区大小(你至少需要两个驱动器/磁盘)。运行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 1 阵列。

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

常见用途:操作系统的安装或者重要的子文件夹,例如 /home

RAID 5 (又名奇偶校验码盘)

阵列总大小将是最小分区大小的 (n-1) 倍。所减少的大小用于奇偶校验(冗余)计算(你至少需要3个驱动器/磁盘)。

说明:你可以指定一个空闲设备 (/dev/sde1) 替换问题出现时的故障部分(分区)。运行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1,/dev/sde1 组装一个 RAID 5 阵列,其中 /dev/sde1 作为空闲分区。

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1

常见用途:Web 和文件服务

RAID 6 (又名双重奇偶校验码盘)

阵列总大小为(ns)-2s,其中n为阵列中独立磁盘的个数,s为最小磁盘大小。

说明:你可以指定一个空闲分区(在这个例子为 /dev/sdf1)替换问题出现时的故障部分(分区)。

运行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 和 /dev/sdf1 组装 RAID 6 阵列,其中 /dev/sdf1 作为空闲分区。

# mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1

常见用途:大容量、高可用性要求的文件服务器和备份服务器。

RAID 1+0 (又名镜像条带)

因为 RAID 1+0 是 RAID 0 和 RAID 1 的组合,所以阵列总大小是基于两者的公式计算的。首先,计算每一个镜像的大小,然后再计算条带的大小。

# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1

常见用途:需要快速 IO 操作的数据库和应用服务器

创建和管理系统备份

记住, RAID 其所有的价值不是在于备份的替换者!在黑板上写上1000次,如果你需要的话,但无论何时一定要记住它。在我们开始前,我们必须注意的是,没有一个放之四海皆准的针对所有系统备份的解决方案,但这里有一些东西,是你在规划一个备份策略时需要考虑的。

  • 你的系统将用于什么?(桌面或者服务器?如果系统是应用于后者,那么最重要的服务是什么?哪个配置是痛点?)
  • 你每隔多久备份你的系统?
  • 你需要备份的数据是什么(比如文件/文件夹/数据库转储)?你还可以考虑是否需要备份大型文件(比如音频和视频文件)。
  • 这些备份将会存储在哪里(物理位置和媒体)?

备份你的数据

方法1:使用 dd 命令备份整个磁盘。你可以在任意时间点通过创建一个准确的镜像来备份一整个硬盘或者是分区。注意当设备是离线时,这种方法效果最好,也就是说它没有被挂载并且没有任何进程的 I/O 操作访问它。

这种备份方法的缺点是镜像将具有和磁盘或分区一样的大小,即使实际数据占用的是一个很小的比例。比如,如果你想要为只使用了10%的20GB的分区创建镜像,那么镜像文件将仍旧是20GB。换句话来讲,它不仅包含了备份的实际数据,而且也包含了整个分区。如果你想完整备份你的设备,那么你可以考虑使用这个方法。

从现有的设备创建一个镜像文件

# dd if=/dev/sda of=/system_images/sda.img
或者
--------------------- 可选地,你可以压缩镜像文件 -------------------
# dd if=/dev/sda | gzip -c > /system_images/sda.img.gz

从镜像文件恢复备份

# dd if=/system_images/sda.img of=/dev/sda
或者
--------------------- 根据你创建镜像文件时的选择(译者注:比如压缩) ----------------
# gzip -dc /system_images/sda.img.gz | dd of=/dev/sda

方法2:使用 tar 命令备份确定的文件/文件夹——已经在本系列第三讲中讲了。如果你想要备份指定的文件/文件夹(配置文件,用户主目录等等),你可以使用这种方法。

方法3:使用 rsync 命令同步文件。rsync 是一种多功能远程(和本地)文件复制工具。如果你想要从网络设备备份或同步文件,rsync 是一种选择。

无论是你是正在同步两个本地文件夹还是本地 < — > 挂载在本地文件系统的远程文件夹,其基本语法是一样的。

# rsync -av source_directory destination_directory

在这里,-a 递归遍历子目录(如果它们存在的话),维持符号链接、时间戳、权限以及原本的属主/属组,-v 显示详细过程。

rsync Synchronizing Files

rsync 同步文件

除此之外,如果你想增加在网络上传输数据的安全性,你可以通过 ssh 协议使用 rsync。

通过 ssh 同步本地到远程文件夹

# rsync -avzhe ssh backups root@remote_host:/remote_directory/

这个示例,本地主机上的 backups 文件夹将与远程主机上的 /root/remote\_directory 的内容同步。

在这里,-h 选项以易读的格式显示文件的大小,-e 标志用于表示一个 ssh 连接。

rsync Synchronize Remote Files

rsync 同步远程文件

通过ssh同步远程到本地文件夹

在这种情况下,交换前面示例中的 source 和 destination 文件夹。

# rsync -avzhe ssh root@remote_host:/remote_directory/ backups

请注意这些只是 rsync 用法的三个示例而已(你可能遇到的最常见的情形)。对于更多有关 rsync 命令的示例和用法 ,你可以查看下面的文章。

总结

作为一个系统管理员,你需要确保你的系统表现得尽可能好。如果你做好了充分准备,并且如果你的数据完整性能被诸如 RAID 和系统日常备份的存储技术支持,那你将是安全的。

如果你有有关完善这篇文章的问题、评论或者进一步的想法,可以在下面畅所欲言。除此之外,请考虑通过你的社交网络简介分享这系列文章。


via: http://www.tecmint.com/creating-and-managing-raid-backups-in-linux/

作者:Gabriel Cánepa 译者:cpsoture 校对:wxy

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

2月23日 ThinkParQ 宣布完整的 BeeGFS 并行文件系统 的源码现已开源。由于 BeeGFS 是专为要求性能的环境开发的,所以它在开发时十分注重安装的简易性以及高度灵活性,包括融合了在存储服务器同时做计算任务时需要的设置。随着系统中的服务器以及存储设备的增加,文件系统的容量以及性能将是需求的拓展点,无论是小型集群还是多达上千个节点的企业级系统。

官方第一次声明开放 BeeGFS 的源码是在 2013 年的国际超级计算大会上发布的。这个声明是在欧洲的百亿亿次级超算项目 DEEP-ER 的背景下做出的,在这个项目里为了得到更好的 I/O 要求,做出了一些新的改进。对于运算量高达百亿亿次的系统,不同的软硬件必须有效的协同工作才能得到最佳的拓展性。因此,开源 BeeGFS 是让一个百亿亿次的集群的所有组成部分高效的发挥作用的一步。

“当我们的一些用户对于 BeeGFS 十分容易安装并且不用费心管理而感到高兴时,另外一些用户则想要知道它是如何运行的以便于更好的优化他们的应用,使得他们可以监控它或者把它移植到其他的平台上,比如 BSD,” Sven Breuner 说道,他是 ThinkParQ (BeeGFS 背后的公司)的 CEO,“而且,把 BeeGFS 移植到其他的非 X86 架构,比如 ARM 或者 Power,也是社区即将要做的一件事。”

对于未来的采购来说,ARM 技术的稳步发展确实使得它成为了一个越来越有趣的技术。因此, BeeGFS 的团队也参与了 ExaNeSt,一个来自欧洲的新的百亿亿次级超算计划,这个计划致力于使 ARM 的生态能为高性能的工作负载做好准备。“尽管现在 BeeGFS 在 ARM 处理器上可以算是开箱即用,这个项目也将给我们机会来证明我们在这个架构上也能完全发挥其性能。”, Bernd Lietzow , BeeGFS 中 ExaNeSt 的领导者补充道。

作为一个有着 25 K 行 C++ 代码的元数据服务以及约 15 K 行存储服务的项目,BeeGFS 相对比较容易理解和拓展,不只是对于大神,对于对文件系统有兴趣的大学生也是这样。在 GitHub 上已经有很多的为 BeeGFS 写的项目,比如基于浏览器的监控或者 Docker 一体化。

有关新闻显示, BeeGFS 用户大会将于 5 月 18-19 日在德国凯泽斯劳滕举行。


via: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/

作者:staff 译者:name1e5s 校对:wxy

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

如果你对一次又一次的克隆、构建、测试和部署代码感到厌倦了,可以考虑一下持续集成。持续集成简称 CI,是一种像我们一样的频繁提交的代码库,构建、测试和部署的软件工程实践。CI 可以帮助我们快速的集成新代码到已有的代码库。如果这个过程是自动化进行的,那么就会提高开发的速度,因为这可以减少开发人员手工构建和测试的时间。Drone 是一个自由开源项目,用来提供一个非常棒的持续集成服务的环境,采用 Apache 2.0 协议发布。它已经集成近很多代码库提供商,比如 Github、Bitbucket 以及 Google Code,它可以从代码库提取代码,使我们可以对包括 PHP, Node, Ruby, Go, Dart, Python, C/C++, JAVA 等等在内的各种语言编译构建。它是如此一个强大的平台,它使用了容器和 docker 技术,这让用户每次构建都可以在保证隔离的条件下完全控制他们自己的构建环境。

1. 安装 Docker

首先,我们要安装 docker,因为这是 Drone 的工作流的最关键的元素。Drone 合理的利用了 docker 来构建和测试应用。容器技术提高了应用部署的效率。要安装 docker ,我们需要在不同的 linux 发行版本运行下面对应的命令,我们这里会说明 Ubuntu 14.04 和 CentOS 7 两个版本。

Ubuntu

要在 Ubuntu 上安装 Docker ,我们只需要运行下面的命令。

# apt-get update
# apt-get install docker.io

安装之后我们需要使用service 命令重启 docker 引擎。

# service docker restart

然后我们让 docker 在系统启动时自动启动。

# update-rc.d docker defaults

Adding system startup for /etc/init.d/docker ...
/etc/rc0.d/K20docker -> ../init.d/docker
/etc/rc1.d/K20docker -> ../init.d/docker
/etc/rc6.d/K20docker -> ../init.d/docker
/etc/rc2.d/S20docker -> ../init.d/docker
/etc/rc3.d/S20docker -> ../init.d/docker
/etc/rc4.d/S20docker -> ../init.d/docker
/etc/rc5.d/S20docker -> ../init.d/docker

CentOS

第一,我们要更新机器上已经安装的软件包。我们可以使用下面的命令。

#  sudo yum update

要在 centos 上安装 docker,我们可以简单的运行下面的命令。

#  curl -sSL https://get.docker.com/ | sh

安装好 docker 引擎之后我么只需要简单使用下面的systemd 命令启动 docker,因为 centos 7 的默认初始化系统是 systemd。

# systemctl start docker

然后我们要让 docker 在系统启动时自动启动。

# systemctl enable docker

ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'

2. 安装 SQlite 驱动

Drone 默认使用 SQlite3 数据库服务器来保存数据和信息。它会在 /var/lib/drone/ 自动创建名为 drone.sqlite 的数据库来处理数据库模式的创建和迁移。要安装 SQlite3 我们要完成以下几步。

Ubuntu 14.04

因为 SQlite3 存在于 Ubuntu 14.04 的默认软件库,我们只需要简单的使用 apt 命令安装它。

# apt-get install libsqlite3-dev

CentOS 7

要在 Centos 7 上安装需要使用下面的 yum 命令。

# yum install sqlite-devel

3. 安装 Drone

最后,我们安装好依赖的软件,我们现在更进一步的接近安装 Drone。在这一步里我们只简单的从官方链接下载对应的二进制软件包,然后使用默认软件包管理器安装 Drone。

Ubuntu

我们将使用 wget 从官方的 Debian 文件下载链接下载 drone 的 debian 软件包。下面就是下载命令。

# wget downloads.drone.io/master/drone.deb

Resolving downloads.drone.io (downloads.drone.io)... 54.231.48.98
Connecting to downloads.drone.io (downloads.drone.io)|54.231.48.98|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7722384 (7.4M) [application/x-debian-package]
Saving to: 'drone.deb'
100%[======================================>] 7,722,384 1.38MB/s in 17s
2015-11-06 14:09:28 (456 KB/s) - 'drone.deb' saved [7722384/7722384]

下载好之后,我们将使用 dpkg 软件包管理器安装它。

# dpkg -i drone.deb

Selecting previously unselected package drone.
(Reading database ... 28077 files and directories currently installed.)
Preparing to unpack drone.deb ...
Unpacking drone (0.3.0-alpha-1442513246) ...
Setting up drone (0.3.0-alpha-1442513246) ...
Your system ubuntu 14: using upstart to control Drone
drone start/running, process 9512

CentOS

在 CentOS 机器上我们要使用 wget 命令从下载链接下载 RPM 包。

# wget downloads.drone.io/master/drone.rpm

--2015-11-06 11:06:45-- http://downloads.drone.io/master/drone.rpm
Resolving downloads.drone.io (downloads.drone.io)... 54.231.114.18
Connecting to downloads.drone.io (downloads.drone.io)|54.231.114.18|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7763311 (7.4M) [application/x-redhat-package-manager]
Saving to: ‘drone.rpm’
100%[======================================>] 7,763,311 1.18MB/s in 20s
2015-11-06 11:07:06 (374 KB/s) - ‘drone.rpm’ saved [7763311/7763311]

然后我们使用 yum 安装 rpm 包。

# yum localinstall drone.rpm

4. 配置端口

安装完成之后,我们要先进行配置才能工作起来。drone 的配置文件在/etc/drone/drone.toml 。默认情况下 drone 的 web 接口使用的是80,而这也是 http 默认的端口,如果我们修改它,请按下面所示的修改配置文件里 server 块对应的值。

[server]
port=":80"

5. 集成 Github

为了运行 Drone 我们必须设置最少一个和 GitHub、GitHub 企业版,Gitlab,Gogs,Bitbucket 关联的集成点。在本文里我们只集成了 github,但是如果我们要集成其他的服务,我们可以在配置文件做修改。为了集成 github 我们需要在github 的设置里创建一个新的应用:https://github.com/settings/developers

Registering App Github

要创建一个应用,我们需要在 New Application 页面点击 Register,然后如下所示填表。

Registering OAuth app github

我们应该保证在应用的配置项里设置了授权回调链接,链接看起来类似 http://drone.linoxide.com/api/auth/github.com。然后我们点击注册应用。所有都做好之后我们会看到我们需要在我们的 Drone 配置文件里配置的客户端 ID 和客户端密钥。

Client ID and Secret Token

在这些都完成之后我们需要使用文本编辑器编辑 drone 配置文件,比如使用下面的命令。

# nano /etc/drone/drone.toml

然后我们会在 drone 的配置文件里面找到[github] 部分,紧接着的是下面所示的配置内容

[github]
client="3dd44b969709c518603c"
secret="4ee261abdb431bdc5e96b19cc3c498403853632a"
# orgs=[]
# open=false

Configuring Github Drone

6. 配置 SMTP 服务器

如果我们想让 drone 使用 email 发送通知,那么我们需要在 SMTP 配置里面设置我们的 SMTP 服务器。如果我们已经有了一个 SMTP 服务,那就只需要简单的使用它的配置文件就行了,但是因为我们没有一个 SMTP 服务器,我们需要安装一个 MTA 比如 Postfix,然后在 drone 配置文件里配置好 SMTP。

Ubuntu

在 ubuntu 里使用下面的 apt 命令安装 postfix。

# apt-get install postfix

CentOS

在 CentOS 里使用下面的 yum 命令安装 postfix。

# yum install postfix

安装好之后,我们需要编辑我们的 postfix 配置文件。

# nano /etc/postfix/main.cf

然后我们要把 myhostname 的值替换为我们自己的 FQDN,比如 drone.linoxide.com。

myhostname = drone.linoxide.com

现在开始配置 drone 配置文件里的 SMTP 部分。

# nano /etc/drone/drone.toml

找到[smtp] 部分补充上下面的内容。

[smtp]
host = "drone.linoxide.com"
port = "587"
from = "[email protected]"
user = "root"
pass = "password"

Configuring SMTP Drone

注意:这里的 userpass 参数强烈推荐一定要改成某个具体用户的配置。

7. 配置 Worker

如我们所知的 drone 利用了 docker 完成构建、测试任务,我们需要把 docker 配置为 drone 的 worker。要完成这些需要修改 drone 配置文件里的[worker] 部分。

# nano /etc/drone/drone.toml

然后取消底下几行的注释并且补充上下面的内容。

[worker]
nodes=[
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock"
]

这里我们只设置了两个节点,这意味着上面的配置文件只能同时执行2 个构建操作。要提高并发性可以增大节点的值。

[worker]
nodes=[
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock"
]

使用上面的配置文件 drone 被配置为使用本地的 docker 守护程序可以同时构建4个任务。

8. 重启 Drone

最后,当所有的安装和配置都准备好之后,我们现在要在本地的 linux 机器上启动 drone 服务器。

Ubuntu

因为 ubuntu 14.04 使用了 sysvinit 作为默认的初始化系统,所以只需要简单执行下面的 service 命令就可以启动 drone 了。

# service drone restart

要让 drone 在系统启动时也自动运行,需要运行下面的命令。

# update-rc.d drone defaults

CentOS

因为 CentOS 7使用 systemd 作为初始化系统,所以只需要运行下面的 systemd 命令就可以重启 drone。

# systemctl restart drone

要让 drone 自动运行只需要运行下面的命令。

# systemctl enable drone

9. 添加防火墙例外规则

众所周知 drone 默认使用了80 端口而我们又没有修改它,所以我们需要配置防火墙程序允许80 端口(http)开放并允许其他机器可以通过网络连接。

Ubuntu 14.04

iptables 是最流行的防火墙程序,并且 ubuntu 默认安装了它。我们需要修改 iptable 以暴露端口80,这样我们才能让 drone 的 web 界面在网络上被大家访问。

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# /etc/init.d/iptables save

CentOS 7

因为 CentOS 7 默认安装了 systemd,它使用 firewalld 作为防火墙程序。为了在 firewalld 上打开80端口(http 服务),我们需要执行下面的命令。

# firewall-cmd --permanent --add-service=http
success

# firewall-cmd --reload
success

10. 访问 web 界面

现在我们将在我们最喜欢的浏览器上通过 web 界面打开 drone。要完成这些我们要把浏览器指向运行 drone 的服务器。因为 drone 默认使用80 端口而我们有没有修改过,所以我们只需要在浏览器里根据我们的配置输入http://ip-address/http://drone.linoxide.com 就行了。在我们正确的完成了上述操作后,我们就可以看到登录界面了。

Login Github Drone

因为在上面的步骤里配置了 Github,我们现在只需要简单的选择 github 然后进入应用授权步骤,这些完成后我们就可以进入工作台了。

Drone Dashboard

这里它会同步我们在 github 上的代码库,然后询问我们要在 drone 上构建那个代码库。

Activate Repository

这一步完成后,它会询问我们在代码库里添加.drone.yml 文件的新名称,并且在这个文件里定义构建的过程和配置项,比如使用那个 docker 镜像,执行那些命令和脚本来编译,等等。

我们按照下面的内容来配置我们的.drone.yml

image: python
script:
 - python helloworld.py
 - echo "Build has been completed."

这一步完成后我们就可以使用 drone 应用里的 YAML 格式的配置文件来构建我们的应用了。所有对代码库的提交和改变此时都会同步到这个仓库。一旦提交完成了,drone 就会自动开始构建。

Building Application Drone

所有操作都完成后,我们就能在终端看到构建的结果了。

Build Success Drone

总结

在本文中我们学习了如何安装一个可以工作的使用 drone 的持续集成平台。如果我们愿意我们甚至可以从 drone.io 官方提供的服务开始工作。我们可以根据自己的需求从免费的服务或者收费服务开始。它通过漂亮的 web 界面和强大的功能改变了持续集成的世界。它可以集成很多第三方应用和部署平台。如果你有任何问题、建议可以直接反馈给我们,谢谢。


via: http://linoxide.com/linux-how-to/setup-drone-continuous-integration-linux/

作者:Arun Pyasi 译者:ezio 校对:wxy

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

  • 微软宣布在 Edge 浏览器中现在不需要下载安装任何插件就可以运行 Skype 了,这是通过内置的 ORTC 引擎实现的。此外,微软还说 Skype 将会支持更多的浏览器,包括 Google Chrome 和 Mozilla Firefox,这意味着在 Linux 平台上也将可以通过这些浏览器使用。
  • KDE 5.7 中的音量控制器将有大幅改进,可以支持超过 100% 的音量调整。
  • Parsix GNU/Linux 8.0 (Mumble) 结束支持期,它是一个基于 Debian 8.0 的发行版。建议尽快升级到 8.5,而它的 8.10 版本将在今年稍晚时候发布,到时候会配上 GNOME 3.20 环境。
  • 开源的多平台音乐播放器 Clementine 1.3 发布了最终版本,带来了大量更新。
  • Slackware 14.2 RC2 发布,寻找更多公测志愿者

你在 Linux 终端中会有很多的乐趣。我今天要讲的不是在终端中跑火车

我今天要讲的技巧可以放松你的心情。前面一篇文章中,你学习了如何在命令行中增加 sudo 命令的超时。今天的文章中,我会向你展示如何让 sudo 在输错密码的时候“嘲讽”你(或者其他人)。

对我讲的感到疑惑?这里,让我们看下这张 gif 来了解下 sudo 是如何在你输错密码之后“嘲讽”你的。

那么,为什么要这么做?毕竟,“嘲讽”不会让你的一天变得开心,不是么?

对我来说,一点小技巧都是有趣的,并且要比以前的“密码错误”的错误提示更有趣。另外,我可以向我的朋友展示来逗弄他们(这个例子中是通过自由开源软件)。我很肯定你有你自己的理由来使用这个技巧的。

在 sudo 中启用“嘲讽”

你可以在sudo配置中增加下面的行来启用“嘲讽”功能:

Defaults    insults

让我们看看该如何做。打开终端并使用下面的命令:

sudo visudo

这会在 nano中打开配置文件。

是的,我知道传统的 ‘visudo’ 应该在 vi 中打开 /etc/sudoers 文件,但是 Ubuntu 及基于它的发行版会使用 nano 打开。由于我们在讨论vi,这里有一份 vi 速查表可以在你决定使用 vi 的时候使用。

回到编辑 sudeors 文件界面,你需要找出 Defaults 所在的行。简单的很,只需要在文件的开头加上Defaults insults,就像这样:

如果你正在使用 nano,使用Ctrl+X来退出编辑器。在退出的时候,它会询问你是否保存更改。要保存更改,按下“Y”。

一旦你保存了 sudoers 文件之后,打开终端并使用 sudo 运行各种命令。故意输错密码并享受嘲讽吧:)

sudo 可能会生气的。看见没,他甚至在我再次输错之后威胁我。哈哈。

如果你喜欢这个终端技巧,你也可以查看其他终端技巧的文章。如果你有其他有趣的技巧,在评论中分享。


via: http://itsfoss.com/sudo-insult-linux/

作者:ABHISHEK 译者:geekpi 校对:wxy

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