蚊章汇 - Arun Pyasi
type: channel
link: https://linuxcn.bwsl.wang/author/132/
description: Arun Pyasi
items: 如何在 Ubuntu 15.04/CentOS 7 中安装 Lighttpd Web 服务器
items: 如何在 linux 上配置持续集成服务 - Drone
items: 如何在 Linux 上安装服务器管理软件 Cockpit
items: 意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境
items: 在 Ubuntu 15.04 / CentOS 7 上安装广告服务器 Revive Adserver
items: 如何在 Ubuntu/Fedora/Debian 中安装 GitLab
items: 如何在 Ubuntu 15.04 中安装 puppet
items: 用浏览器管理 Docker
items: 如何在 Ubuntu 中安装 QGit 客户端
items: 如何在 Docker 容器中运行支持 OData 的 JBoss 数据虚拟化 GA

如何在 Ubuntu 15.04/CentOS 7 中安装 Lighttpd Web 服务器
type: item
date: 2016-07-07T17:50:40+08:00
description: Lighttpd 是一款开源 Web 服务器软件。Lighttpd 安全快速，符合行业标准，适配性强并且针对高配置环境进行了优化。相对于其它的 Web 服务器而言，Lighttpd 占用内存更少；因其对 CPU 占用小和对处理速度的优化而在效率和速度方面从众多 Web 服务器中脱颖而出。而 Lighttpd 诸如 FastCGI、CGI、认证、输出压缩、URL 重写等高级功能更是那些面临性能压力的服务器的福音。以下便是我们在运行 Ubuntu 15.04 或 CentOS 7 Linux 发行版的机器上安装 Lighttpd Web 服务器的简要流程。安装Lighttpd使用包管理器安装这里我们通过使用包管理器这种最简单的方法来安装 Lighttpd。只需以 sudo 模式在终端或控制台中输入下面的指令即可。CentOS 7由于 CentOS 7.0 官方仓库中并没有提供 Lighttpd，所以我们需要在系统中安装额外的软件源 epel 仓库。使用下面的 yum 指令来安装 epel。# yum install epel-release 然后，我们需要更新系统及为 Lighttpd 的安装做前置准备。# yum update # yum install lighttpd Ubuntu 15.04Ubuntu 15.04 官方仓库中包含了 Lighttpd，所以只需更新本地仓库索引并使用 apt-get 指令即可安装 Lighttpd。# apt-get update # apt-get install lighttpd 从源代码安装 Lighttpd如果想从 Lighttpd 源码安装最新版本（例如 1.4.39），我们需要在本地编译源码并进行安装。首先我们要安装编译源码所需的依赖包。# cd /tmp/ # wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.39.tar.gz 下载完成后，执行下面的指令解压缩。# tar -zxvf lighttpd-1.4.39.tar.gz 然后使用下面的指令进行编译。# cd lighttpd-1.4.39 # ./configure # make 注：在这份教程中，我们安装的是默认配置的 Lighttpd。其他拓展功能，如对 SSL 的支持，modrewrite，modredirect 等，需自行配置。当编译完成后，我们就可以把它安装到系统中了。# make install 设置 Lighttpd如果有更高的需求，我们可以通过修改默认设置文件，如/etc/lighttpd/lighttpd.conf，来对 Lighttpd 进行进一步设置。 而在这份教程中我们将使用默认设置，不对设置文件进行修改。如果你曾做过修改并想检查设置文件是否出错，可以执行下面的指令。# lighttpd -t -f /etc/lighttpd/lighttpd.conf 使用 CentOS 7在 CentOS 7 中，我们需创建一个在 Lighttpd 默认配置文件中设置的 webroot 文件夹，例如/src/www/htdocs。# mkdir -p /srv/www/htdocs/ 而后将默认欢迎页面从/var/www/lighttpd复制至刚刚新建的目录中：# cp -r /var/www/lighttpd/* /srv/www/htdocs/ 开启服务现在，通过执行 systemctl 指令来重启 Web 服务。# systemctl start lighttpd 然后我们将它设置为伴随系统启动自动运行。# systemctl enable lighttpd 设置防火墙如要让我们运行在 Lighttpd 上的网页或网站能在 Internet 或同一个网络内被访问，我们需要在防火墙程序中设置打开 80 端口。由于 CentOS 7 和 Ubuntu15.04 都附带 Systemd 作为默认初始化系统，所以我们默认用的都是 firewalld。如果要打开 80 端口或 http 服务，我们只需执行下面的命令：# firewall-cmd --permanent --add-service=http success # firewall-cmd --reload success 连接至 Web 服务器在将 80 端口设置为默认端口后，我们就可以直接访问 Lighttpd 的默认欢迎页了。我们需要根据运行 Lighttpd 的设备来设置浏览器的 IP 地址和域名。在本教程中，我们令浏览器访问 http://lighttpd.linoxide.com/ ，同时将该子域名指向上述 IP 地址。如此一来，我们就可以在浏览…

如何在 linux 上配置持续集成服务 - Drone
type: item
date: 2016-04-17T16:32:41+08:00
description: 如果你对一次又一次的克隆、构建、测试和部署代码感到厌倦了，可以考虑一下持续集成。持续集成简称 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/dr…

如何在 Linux 上安装服务器管理软件 Cockpit
type: item
date: 2016-03-29T16:54:00+08:00
description: Cockpit 是一个自由开源的服务器管理软件，它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器。Cockpit 使得 linux 系统管理员、系统维护员和开发者能轻松地管理他们的服务器并执行一些简单的任务，例如管理存储、检测日志、启动或停止服务以及一些其它任务。它的报告界面添加了一些很好的功能使得可以轻松地在终端和 web 界面之间切换。另外，它不仅使得管理一台服务器变得简单，更重要的是只需要一个单击就可以在一个地方同时管理多个通过网络连接的服务器。它非常轻量级，web 界面也非常简单易用。在这篇博文中，我们会学习如何安装 Cockpit 并用它管理我们的运行着 Fedora、CentOS、Arch Linux 以及 RHEL 发行版操作系统的服务器。下面是 Cockpit 在我们的 GNU/Linux 服务器中一些非常棒的功能：它包含 systemd 服务管理器。有一个用于故障排除和日志分析的 Journal 日志查看器。包括 LVM 在内的存储配置比以前任何时候都要简单。用 Cockpit 可以进行基本的网络配置。可以轻松地添加和删除用户以及管理多台服务器。1. 安装 Cockpit首先，我们需要在我们基于 linux 的服务器上安装 Cockpit。大部分发行版的官方软件仓库中都有可用的 cockpit 安装包。这篇博文中，我们会在 Fedora 22、CentOS 7、Arch Linux 和 RHEL 7 中通过它们的官方软件仓库安装 Cockpit。CentOS / RHELCentOS 和 RHEL 官方软件库中有可用的 Cockpit。我们只需要用 yum 管理器就可以安装。只需要以 sudo/root 权限运行下面的命令就可以安装它。# yum install cockpit Fedora 22/21和 CentOS 一样， Fedora 的官方软件库默认也有可用的 Cockpit。我们只需要用 dnf 软件包管理器就可以安装 Cockpit。# dnf install cockpit Arch Linux现在 Arch Linux 官方软件库中还没有可用的 Cockpit，但 Arch 用户库（Arch User Repository，AUR）有。只需要运行下面的 yaourt 命令就可以安装。# yaourt cockpit 2. 启动并启用 Cockpit成功安装完 Cockpit，我们就要用服务/守护进程管理器启动 Cockpit 服务。到了 2015 年，尽管一些 linux 发行版仍然运行 SysVinit 管理守护进程，但大部分 linux 发行版都采用了 Systemd，Cockpit 使用 systemd 完成从运行守护进程到服务几乎所有的功能。因此，我们只能在运行着 Systemd 的最新的 linux 发行版中安装 Cockpit。要启动 Cockpit 并让它在每次系统重启时自动启动，我们需要在终端或控制台中运行下面的命令。# systemctl start cockpit # systemctl enable cockpit.socket Created symlink from /etc/systemd/system/sockets.target.wants/cockpit.socket to /usr/lib/systemd/system/cockpit.socket. 3. 允许通过防火墙启动 Cockpit 并使得它能在每次系统重启时自动启动后，我们现在要给它配置防火墙。由于我们的服务器上运行着防火墙程序，我们需要允许它通过某些端口使得从服务器外面可以访问 Cockpit。Firewalld# firewall-cmd --add-service=cockpit --permanent success # firewall-cmd --reload success Iptables# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # service iptables save 4. 访问 Cockpit Web 界面下面，我们终于要通过 web 浏览器访问 Cockpit web 界面了。根据配置，我们只需要用浏览器打开 https://ip-address:9090 或 https://server.domain.com:9090。在我们这篇博文中，我们用浏览器打开 https://128.199.114.17:9090，正如下图所示。此时会出现一个 SSL 认证警告，因为我们正在使用一个自签名认证。我们只需要忽略这个警告并进入到登录页面，在 chrome/chromium…

意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境
type: item
date: 2016-03-16T18:46:00+08:00
description: 32 位微控制器世界向 Linux 敞开大门。前一段时间，领先的 ARM Cortex-M 供应商意法半导体（ST）发布了 一款自由的 Linux 桌面版开发程序，该软件面向其旗下的 STM32 微控制单元（MCU）。包含了 ST 的 STM32CubeMX 配置器和初始化工具，以及其 STM32 系统工作台（SW4STM32） ，这个基于 Eclipse 的 IDE 由工具 Ac6 创建。支撑 SW4STM32 的工具链，论坛，博客以及技术会由 openSTM32.org 开发社区提供。“Linux 社区以吸引富有创意的自由思想者而闻名，他们善于交流心得、高效地克服挑战。” Laurent Desseignes，意法半导体微控制器产品部，微控制器生态系统市场经理这么说道：“我们正着手做的是让他们能极端简单的借力 STM32 系列的特性和性能施展自己的才能，运用到富有想象力的新产品的创造中去。Linux 是物联网（IoT）网关和枢纽，及高端 IoT 终端的领先平台。但是，大部分 IoT 革命，以及可穿戴设备市场基于小型的低功耗微控制器，对 Cortex-M 芯片的运用越来越多。虽然其中的一小部分可以运行精简的 uCLinux （见下文），却没能支持更全面的 Linux 发行版。取而代之的是实时操作系统（RTOS）们或者有时干脆不用 OS 来控制。固件的开发工作一般会在基于 Windows 的集成开发环境（IDE）上完成。通过 ST 的自由工具，Linux 开发者们可以更容易的开疆拓土。ST 工具中的一些技术在第二季度应该会登录 Mac OS/X 平台，与 STM32 Nucleo 、开发套件、以及评估板同时面世。Nucleo 支持 32 针、64 针、和 144 针的版本，并且提供类似 Arduino 连接器这样的插件。STM32CubeMX 配置器和 IDE SW4STM32 使 Linux 开发者能够配置微控制器并开发调试代码。SW4STM32 支持在 Linux 下通过社区更改版的 OpenOCD 使用调试工具 ST-LINK/V2。据 ST 称，软件兼容 STM32Cube 软件包及标准外设库中的微控制器固件。目标是囊括 ST 的全系列 MCU，从入门级的 Cortex-M0 内核到高性能的 M7 芯片，包括 M0+，M3 和 DSP 扩展的 M4 内核。ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商，但似乎是第一大自由的 Linux 平台。例如 NXP，MCU 的市场份额随着近期收购了 Freescale （Kinetis 系列 MCU，等）而增加，提供了一款 IDE LPCXpresso IDE，支持 Linux 、Windows 和 Mac。然而，LPCXpresso 每份售价 $450。在其 SmartFusion FPGA 系统级芯片（SoC）上集成了 Cortex-M3 芯片的 Microsemi，拥有一款 IDE Libero IDE，适用于 RHEL 和 Windows。然而，Libero 需要许可证才行，并且 RHEL 版缺乏如 FlashPro 和 SoftConsole 的插件。为什么要学习 MCU?即便 Linux 开发者并没有计划在 Cortex-M 上使用 uClinux，但是 MCU 的知识总会派上用场。特别是牵扯到复杂的 IoT 工程，需要扩展 MCU 终端至云端。对于原型和业余爱好者的项目，Arduino 板为其访问 MCU 提供了非常便利的接口。然而原型之外，开发者常常就会用更快的 32 位 Cortex-M 芯片以及所带来的附加功能来替代 Arduino 板和板上的那块 8 位 MCU ATmega32u4。这些附加功能包括改进的存储器寻址，用于芯片和各种总线的独立时钟设置，以及芯片 Cortex-M7 自带的入门级显示芯片。还有些可能需求 MCU 开发技术的地方包括可穿戴设备，低功耗、低成本和小尺寸给了 MCU 一席之地，还有机器人和无人机这些使用实时处理和电机控制的地方更为受用。在机器人上，你更是有可能看看 Cortex-A 与 Cortex-M 集成在同一个产品中的样子。对于 SoC 芯片还有这样的一种温和的局势，即将 MCU 加入到 Linux 驱动的 Cortex-A 核心中，就如同 NXP i.MX6 SoloX。虽然大多数的嵌入式项目并不使用这种混合型 SoC 或者说将应用处理器和 MCU 结合在同一产品中，但开发者会渐渐地发现自己工作的生产线、设计所基于的芯片正渐渐的从低端的 MCU 模块发展到 Linux 或安卓驱动的 Cortex-A。uClinux 是 Linux 在 MCU 领域的筹码随着物联网的兴起，我们见…

在 Ubuntu 15.04 / CentOS 7 上安装广告服务器 Revive Adserver
type: item
date: 2016-02-12T04:59:17+08:00
description: Revive Adserver是一个自由开源的广告管理系统，能使出版商，广告平台和广告商在网页、应用、视频上投放并管理广告的系统。Revive Adserver以前叫做OpenX Source，遵循GNU通用公共授权协议。它集广告管理、网站定位、地理定位和一个用于数据收集的跟踪系统于一体。能使网站站长管理内部的、付费的以及第三方来源的广告，如谷歌的AdSense。本教程中，将会教会你在Ubuntu 15.04或CentOS 7安装并运行Revive Adserver。1. 安装LAMP首先，Revive Adserver需要完整的LAMP环境才能运行，所以我们先安装LAMP。LAMP是Apache网页服务器，MySQL/MariaDB数据库和PHP模块的集合。要使Revive正常运行，需要安装PHP的众多模块，如apc, zlib, xml, pcre, mysql和mbstring。在不同的Linux发行版中，我们可以用下列命令进行LAMP的配置:在Ubuntu 15.04下# apt-get install apache2 mariadb-server php5 php5-gd php5-mysql php5-curl php-apc zlibc zlib1g zlib1g-dev libpcre3 libpcre3-dev libapache2-mod-php5 zip 在CentOS 7下# yum install httpd mariadb php php-gd php-mysql php-curl php-mbstring php-xml php-apc zlibc zlib1g zlib1g-dev libpcre3 libpcre3-dev zip 2. 启动Apache Web和MariaDB服务可以用下列命令启动刚刚安装好的Apache Web服务和MariaDB数据库服务。在Ubuntu 15.04下Ubuntu15.04使用Systemd作为默认初始系统，所以用下列命令启动Apache和MariaDB进程：# systemctl start apache2 mysql 可以用下列命令使其开机自动运行：# systemctl enable apache2 mysql Synchronizing state for apache2.service with sysvinit using update-rc.d... Executing /usr/sbin/update-rc.d apache2 defaults Executing /usr/sbin/update-rc.d apache2 enable Synchronizing state for mysql.service with sysvinit using update-rc.d... Executing /usr/sbin/update-rc.d mysql defaults Executing /usr/sbin/update-rc.d mysql enable 在CentOS 7下CentOS 7同样是以Systemd作为默认初始系统，可以用下列命令启动:# systemctl start httpd mariadb ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service' ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service' 3. 配置MariaDB在CentOS 7/Ubuntu 15.04下当我们第一次启动MariaDB时，MariaDB是没有分配密码的，所以要先设置一个root密码。之后再创建一个新的数据库用来储存Revive Adserver的数据。使用以下命令配置MariaDB并设置其root密码：# mysql_secure_installation 这时会要我们输入root密码，但我们之前什么密码都没设置，所以按回车下一步。之后，要求设置root密码，这时我们输入Y，然后输入自己想要的密码。回车继续下一步。 … so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on… Setting the root passw…

如何在 Ubuntu/Fedora/Debian 中安装 GitLab
type: item
date: 2016-01-18T18:23:00+08:00
description: 在 Git 问世之前，分布式版本控制从来都不是一件简单的事。Git 是一个自由开源的软件，旨在轻松且快速地对从小规模到非常巨大的项目进行管理。Git 最开始由 Linus Torvalds 开发，他同时也是著名的 Linux 内核的创建者。在 git 和分布式版本控制系统领域中，GitLab 是一个极棒的新产品。它是一个基于 web 的 Git 仓库管理应用，包含代码审查、wiki、问题跟踪等诸多功能。使用 GitLab 可以很方便、快速地创建、审查、部署及托管代码。尽管它在其官方的服务器提供了与 Github 类似的免费托管的代码仓库，但它也可以运行在我们自己的服务器上。GitLab 有两个不同的版本： 社区版 （ Community Edition ） 和 企业版 （ Enterprise Edition ） 。社区版本完全免费且开源，遵循 MIT 协议；而企业版则遵循一个专有的协议，包含一些社区版中没有的功能。下面介绍的是有关如何在我们自己的运行着 Ubuntu、Fedora 或 Debian 操作系统的机器上安装 GitLab 社区版的简单步骤。1. 安装先决条件首先，我们需要安装 GitLab 所依赖的软件包。我们将安装 curl，用以下载我们所需的文件；安装openssh-server ，以此来通过 ssh 协议登录到我们的机器上；安装ca-certificates，用它来添加 CA 认证；以及 postfix，把它作为一个 MTA(Mail Transfer Agent，邮件传输代理)。注： 若要安装 GitLab 社区版，我们需要一个至少包含 2 GB 内存和 2 核 CPU 的 linux 机器。在 Ubuntu 14 .04/Debian 8.x 中鉴于这些依赖包都可以在 Ubuntu 14.04 和 Debian 8.x 的官方软件仓库中获取到，我们只需通过使用 apt-get 包管理器来安装它们。为此，我们需要在一个终端或控制台中执行下面的命令：# apt-get install curl openssh-server ca-certificates postfix 在 Fedora 22 中在 Fedora 22 中，由于 yum 已经被弃用了，默认的包管理器是 dnf。为了安装上面那些需要的软件包，我们只需运行下面的 dnf 命令：# dnf install curl openssh-server postfix 2. 打开并开启服务现在，我们将使用我们默认的初始化系统来打开 sshd 和 postfix 服务。并且我们将使得它们在每次系统启动时被自动开启。在 Ubuntu 14.04 中由于在 Ubuntu 14.04 中安装的是 SysVinit 初始化系统，我们将使用 service 命令来开启 sshd 和 postfix 守护进程：# service sshd start # service postfix start 现在，为了使得它们在每次开机启动时被自动开启，我们需要运行下面的 update-rc.d 命令：# update-rc.d sshd enable # update-rc.d postfix enable 在 Fedora 22/Debian 8.x 中鉴于 Fedora 22 和 Debian 8.x 已经用 Systemd 代替了 SysVinit 来作为默认的初始化系统，我们只需运行下面的命令来开启 sshd 和 postfix 服务：# systemctl start sshd postfix 现在，为了使得它们在每次开机启动时可以自动运行，我们需要运行下面的 systemctl 命令：# systemctl enable sshd postfix Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service. Created symlink from /etc/systemd/system/multi-user.target.wants/postfix.service to /usr/lib/systemd/system/postfix.service. 3. 下载 GitLab现在，我们将使用 curl 从官方的 GitLab 社区版仓库下载二进制安装文件。首先，为了得到所需文件的下载链接，我们需要浏览到该软件仓库的页面。为此，我们需要在运行着相应操作系统的 linux 机器上运行下面的命令。在 Ubuntu 14.04 中由于 Ubuntu 和 Debian 使用相同的 debian 格式…

如何在 Ubuntu 15.04 中安装 puppet
type: item
date: 2015-12-05T17:32:57+08:00
description: 大家好，本教程将学习如何在 ubuntu 15.04 上面安装 puppet，它可以用来管理你的服务器基础环境。puppet 是由 puppet 实验室 （ Puppet Labs ） 开发并维护的一款开源的配置管理软件，它能够帮我们自动化供给、配置和管理服务器的基础环境。不管我们管理的是几个服务器还是数以千计的计算机组成的业务报表体系，puppet 都能够使管理员从繁琐的手动配置调整中解放出来，腾出时间和精力去提系统的升整体效率。它能够确保所有自动化流程作业的一致性、可靠性以及稳定性。它让管理员和开发者更紧密的联系在一起，使开发者更容易产出付出设计良好、简洁清晰的代码。puppet 提供了配置管理和数据中心自动化的两个解决方案。这两个解决方案分别是 puppet 开源版 和 puppet 企业版。puppet 开源版以 Apache 2.0 许可证发布，它是一个非常灵活、可定制的解决方案，设置初衷是帮助管理员去完成那些重复性操作工作。pupprt 企业版是一个全平台复杂 IT 环境下的成熟解决方案，它除了拥有开源版本所有优势以外还有移动端 apps、只有商业版才有的加强支持，以及模块化和集成管理等。Puppet 使用 SSL 证书来认证主控服务器与代理节点之间的通信。本教程将要介绍如何在运行 ubuntu 15.04 的主控服务器和代理节点上面安装开源版的 puppet。在这里，我们用一台服务器做 主控服务器 （ master ） ，管理和控制剩余的当作 puppet 代理节点 （ agent node ） 的服务器，这些代理节点将依据主控服务器来进行配置。在 ubuntu 15.04 只需要简单的几步就能安装配置好 puppet，用它来管理我们的服务器基础环境非常的方便。（LCTT 译注：puppet 采用 C/S 架构，所以必须有至少有一台作为服务器，其他作为客户端处理）1.设置主机文件在本教程里，我们将使用2台运行 ubuntu 15.04 “Vivid Vervet" 的主机，一台作为主控服务器，另一台作为 puppet 的代理节点。下面是我们将用到的服务器的基础信息。puupet 主控服务器 IP：44.55.88.6 ，主机名： puppetmasterpuppet 代理节点 IP： 45.55.86.39 ，主机名： puppetnode我们要在代理节点和服务器这两台机器的 hosts 文件里面都添加上相应的条目，使用 root 或是 sudo 访问权限来编辑 /etc/hosts 文件，命令如下：# nano /etc/hosts 45.55.88.6 puppetmaster.example.com puppetmaster 45.55.86.39 puppetnode.example.com puppetnode 注意，puppet 主控服务器必使用 8140 端口来运行，所以请务必保证开启8140端口。2. 用 NTP 更新时间puppet 代理节点所使用系统时间必须要准确，这样可以避免代理证书出现问题。如果有时间差异，那么证书将过期失效，所以服务器与代理节点的系统时间必须互相同步。我们使用 NTP（ Network Time Protocol （ 网络时间协议 ） ）来同步时间。在服务器与代理节点上面分别运行以下命令来同步时间。# ntpdate pool.ntp.org 17 Jun 00:17:08 ntpdate[882]: adjust time server 66.175.209.17 offset -0.001938 sec （LCTT 译注：显示类似的输出结果表示运行正常）如果没有安装 ntp，请使用下面的命令更新你的软件仓库，安装并运行ntp服务# apt-get update && sudo apt-get -y install ntp ; service ntp restart 3. 安装主控服务器软件安装开源版本的 puppet 有很多的方法。在本教程中我们在 puppet 实验室官网下载一个名为 puppetlabs-release 的软件包的软件源，安装后它将为我们在软件源里面添加 puppetmaster-passenger。puppetmaster-passenger 包括带有 apache 的 puppet 主控服务器。我们开始下载这个软件包：# cd /tmp/ # wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb --2015-06-17 00:19:26-- https://apt.puppetlabs.com/puppetlabs-release-trusty.deb Resolving …

用浏览器管理 Docker
type: item
date: 2015-11-30T15:34:00+08:00
description: Docker 越来越流行了。在一个容器里面而不是虚拟机里运行一个完整的操作系统是一种非常棒的技术和想法。docker 已经通过节省工作时间来拯救了成千上万的系统管理员和开发人员。这是一个开源技术，提供一个平台来把应用程序当作容器来打包、分发、共享和运行，而不用关注主机上运行的操作系统是什么。它没有开发语言、框架或打包系统的限制，并且可以在任何时间、任何地点运行，从小型计算机到高端服务器都可以。运行 docker 容器和管理它们可能会花费一点点努力和时间，所以现在有一款基于 web 的应用程序－DockerUI，可以让管理和运行容器变得很简单。DockerUI 是一个对那些不熟悉 Linux 命令行，但又很想运行容器化程序的人很有帮助的工具。DockerUI 是一个开源的基于 web 的应用程序，它最值得称道的是它华丽的设计和用来运行和管理 docker 的简洁的操作界面。下面会介绍如何在 Linux 上安装配置 DockerUI。1. 安装 docker首先，我们需要安装 docker。我们得感谢 docker 的开发者，让我们可以简单的在主流 linux 发行版上安装 docker。为了安装 docker，我们得在对应的发行版上使用下面的命令。Ubuntu/Fedora/CentOS/RHEL/Debiandocker 维护者已经写了一个非常棒的脚本，用它可以在 Ubuntu 15.04/14.10/14.04、 CentOS 6.x/7、 Fedora 22、 RHEL 7 和 Debian 8.x 这几个 linux 发行版上安装 docker。这个脚本可以识别出我们的机器上运行的 linux 的发行版本，然后将需要的源库添加到文件系统、并更新本地的安装源目录，最后安装 docker 及其依赖库。要使用这个脚本安装docker，我们需要在 root 用户或者 sudo 权限下运行如下的命令，# curl -sSL https://get.docker.com/ | sh OpenSuse/SUSE Linux 企业版要在运行了 OpenSuse 13.1/13.2 或者 SUSE Linux Enterprise Server 12 的机器上安装 docker，我们只需要简单的执行zypper 命令。运行下面的命令就可以安装最新版本的docker：# zypper in docker ArchLinuxdocker 在 ArchLinux 的官方源和社区维护的 AUR 库中可以找到。所以在 ArchLinux 上我们有两种方式来安装 docker。使用官方源安装，需要执行下面的 pacman 命令：# pacman -S docker 如果要从社区源 AUR 安装 docker，需要执行下面的命令：# yaourt -S docker-git 2. 启动安装好 docker 之后，我们需要运行 docker 守护进程，然后才能运行并管理 docker 容器。我们需要使用下列命令来确认 docker 守护进程已经安装并运行了。在 SysVinit 上# service docker start 在Systemd 上# systemctl start docker 3. 安装 DockerUI安装 DockerUI 比安装 docker 要简单很多。我们仅仅需要从 docker 注册库上拉取 dockerui ，然后在容器里面运行。要完成这些，我们只需要简单的执行下面的命令：# docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui 在上面的命令里，dockerui 使用的默认端口是9000，我们需要使用-p 命令映射默认端口。使用-v 标志我们可以指定docker 的 socket。如果主机使用了 SELinux 那么就得使用--privileged 标志。执行完上面的命令后，我们要检查 DockerUI 容器是否运行了，或者使用下面的命令检查：# docker ps 4. 拉取 docker 镜像现在我们还不能直接使用 DockerUI 拉取镜像，所以我们需要在命令行下拉取 docker 镜像。要完成这些我们需要执行下面的命令。# docker pull ubuntu 上面的命令将会从 docker 官方源 Docker Hub拉取一个标志为 ubuntu 的镜像。类似的我们可以从 Hub 拉取需要的其它镜像。4. 管理启动了 DockerUI 容器之后，我们可以用它来执行启动、暂停、终止、删除以及 DockerUI 提供的其它操作 docker 容器的命令。首先，我们需要…

如何在 Ubuntu 中安装 QGit 客户端
type: item
date: 2015-09-26T16:54:23+08:00
description: QGit是一款由Marco Costalba用Qt和C++写的开源的图形界面 Git 客户端。它是一款可以在图形界面环境下更好地提供浏览版本历史、查看提交记录和文件补丁的客户端。它利用git命令行来执行并显示输出。它有一些常规的功能像浏览版本历史、比较、文件历史、文件标注、归档树。我们可以格式化并用选中的提交应用补丁，在两个或多个实例之间拖拽并提交等等。它允许我们用它内置的生成器来创建自定义的按钮去执行特定的命令。这里有简单的几步在Ubuntu 14.04 LTS "Trusty"中编译并安装QGit客户端。1. 安装 QT4 库首先在ubuntu中运行QGit需要先安装QT4库。由于apt是ubuntu默认的包管理器，同时qt4也在官方的仓库中，因此我们直接用下面的apt-get命令来安装qt4。$ sudo apt-get install qt4-default 2. 下载QGit压缩包安装完Qt4之后，我们要安装git，这样我们才能在QGit中克隆git仓库。运行下面的apt-get命令。$ sudo apt-get install git 现在，我们要使用下面的git命令来克隆QGit客户端的仓库。$ git clone git://repo.or.cz/qgit4/redivivus.git Cloning into 'redivivus'... remote: Counting objects: 7128, done. remote: Compressing objects: 100% (2671/2671), done. remote: Total 7128 (delta 5464), reused 5711 (delta 4438) Receiving objects: 100% (7128/7128), 2.39 MiB | 470.00 KiB/s, done. Resolving deltas: 100% (5464/5464), done. Checking connectivity... done. 3. 编译 QGit克隆之后，我们现在进入redivivus的目录，并创建我们编译需要的makefile文件。进入目录，运行下面的命令。$ cd redivivus 接下来，我们运行下面的命令从qmake项目文件（qgit.pro）来生成新的Makefile。$ qmake qgit.pro 生成Makefile之后，我们现在终于可以编译qgit的源代码并生成二进制。首先我们要安装make和g++包用于编译，因为这是一个用C++写的程序。$ sudo apt-get install make g++ 现在，我们要用make命令来编译代码了。$ make 4. 安装 QGit成功编译QGit的源码之后，我们就要在Ubuntu 14.04中安装它了，这样就可以在系统中执行它。因此我们将运行下面的命令。$ sudo make install cd src/ && make -f Makefile install make[1]: Entering directory `/home/arun/redivivus/src' make -f Makefile.Release install make[2]: Entering directory `/home/arun/redivivus/src' install -m 755 -p "../bin/qgit" "/usr/lib/x86_64-linux-gnu/qt4/bin/qgit" strip "/usr/lib/x86_64-linux-gnu/qt4/bin/qgit" make[2]: Leaving directory `/home/arun/redivivus/src' make[1]: Leaving directory `/home/arun/redivivus/src' 接下来，我们需要从bin目录下复制qgit的二进制文件到/usr/bin/，这样我们就可以全局运行它了。$ sudo cp bin/qgit /usr/bin/ 5. 创建桌面文件既然我们已经在ubuntu中成功安装了qgit，我们来创建一个桌面文件，这样QGit就可以在我们桌面环境中的菜单或者启动器中找到了。要做到这点，我们要在/usr/share/applications/创建一个新文件叫qgit.desktop。$ sudo nano /usr/share/applications/qgit.desktop 接下来复制下面的行到文件中。[Desktop Entry] Name=qgit GenericName=git 图形界面 viewer Exec=qgit Icon…

如何在 Docker 容器中运行支持 OData 的 JBoss 数据虚拟化 GA
type: item
date: 2015-09-21T18:49:00+08:00
description: 大家好，我们今天来学习如何在一个 Docker 容器中运行支持 OData（译者注：Open Data Protocol，开放数据协议） 的 JBoss 数据虚拟化 6.0.0 GA（译者注：GA，General Availability，具体定义可以查看WIKI）。JBoss 数据虚拟化是数据提供和集成解决方案平台，将多种分散的数据源转换为一种数据源统一对待，在正确的时间将所需数据传递给任意的应用或者用户。JBoss 数据虚拟化可以帮助我们将数据快速组合和转换为可重用的商业友好的数据模型，通过开放标准接口简单可用。它提供全面的数据抽取、联合、集成、转换，以及传输功能，将来自一个或多个源的数据组合为可重复使用和共享的灵活数据。要了解更多关于 JBoss 数据虚拟化的信息，可以查看它的官方文档。Docker 是一个提供开放平台用于打包，装载和以轻量级容器运行任何应用的开源平台。使用 Docker 容器我们可以轻松处理和启用支持 OData 的 JBoss 数据虚拟化。下面是该指南中在 Docker 容器中运行支持 OData 的 JBoss 数据虚拟化的简单步骤。1. 克隆仓库首先，我们要用 git 命令从 https://github.com/jbossdemocentral/dv-odata-docker-integration-demo 克隆带数据虚拟化的 OData 仓库。假设我们的机器上运行着 Ubuntu 15.04 linux 发行版。我们要使用 apt-get 命令安装 git。# apt-get install git 安装完 git 之后，我们运行下面的命令克隆仓库。# git clone https://github.com/jbossdemocentral/dv-odata-docker-integration-demo Cloning into 'dv-odata-docker-integration-demo'... remote: Counting objects: 96, done. remote: Total 96 (delta 0), reused 0 (delta 0), pack-reused 96 Unpacking objects: 100% (96/96), done. Checking connectivity... done. 2. 下载 JBoss 数据虚拟化安装器现在，我们需要从下载页 http://www.jboss.org/products/datavirt/download/ 下载 JBoss 数据虚拟化安装器。下载了 jboss-dv-installer-6.0.0.GA-redhat-4.jar 后，我们把它保存在名为 software 的目录下。3. 创建 Docker 镜像下一步，下载了 JBoss 数据虚拟化安装器之后，我们打算使用 Dockerfile 和刚从仓库中克隆的资源创建 docker 镜像。# cd dv-odata-docker-integration-demo/ # docker build -t jbossdv600 . ... Step 22 : USER jboss ---> Running in 129f701febd0 ---> 342941381e37 Removing intermediate container 129f701febd0 Step 23 : EXPOSE 8080 9990 31000 ---> Running in 61e6d2c26081 ---> 351159bb6280 Removing intermediate container 61e6d2c26081 Step 24 : CMD $JBOSS_HOME/bin/standalone.sh -c standalone.xml -b 0.0.0.0 -bmanagement 0.0.0.0 ---> Running in a9fed69b3000 ---> 407053dc470e Removing intermediate container a9fed69b3000 Successfully built 407053dc470e 注意：在这里我们假设你已经安装了 docker 并正在运行。4. 启动 Docker 容器创建了支持 oData 的 JBoss 数据虚拟化 Docker 镜像之后，我们打算运行 docker 容器并用 -P 标签指定端口。我们运行下面的命令来实现。# docker run -p 8080:8080 -d -t jbossdv600 7765dee9cd59c49ca26850e88f97c21f46859d2dc1d74…