• Posts tagged "linux"

Blog Archives

在Ubuntu中安装Docker

Ubuntu实用龙虎大战坐庄工具 系列文章,将介绍基于Linux ubuntu的各种龙虎大战坐庄工具 龙虎大战坐庄软件 的配置和使用。有些龙虎大战坐庄工具 大家早已耳熟能详,有些龙虎大战坐庄工具 经常用到但确依然陌生。龙虎大战坐庄我 将记录龙虎大战坐庄我 在使用操作系统时,安装及配置龙虎大战坐庄工具 上面的一些龙虎大战坐庄方法 ,把使用心得记录下来也便于自己的以后查找和回忆。

龙虎大战坐庄关于 作者:

  • 张丹, 程序员R,Nodejs,Java
  • weibo:@Conan_Z
  • blog: http://cnc77.com
  • email: bsspirit@gmail.com

转载请注明出处:
http://cnc77.com/linux-docker-install/

ubuntu-docker

前言

网上已经有很多介绍Docker安装的文章,自己的安装过程记录一下,为了博客文章结构的连贯性,为写下一篇R和Docker的相遇做为环境基础,同时也给自己一个备忘。

目录

  1. Docker是什么?
  2. 在Linux Ubuntu中安装Docker
  3. Docker镜像仓库
  4. 制作自己的Docker镜像
  5. 上传Docker镜像到公共仓库

1. Docker是什么?

在龙虎大战坐庄互联网 圈混,如果还不知道Docker龙虎大战坐庄你 就out了。从2014年开始,docker龙虎大战坐庄技术 在龙虎大战坐庄互联网 龙虎大战坐庄技术 中异军突起,2015-2016年很多龙虎大战坐庄公司 已经对Docker开始大量研究和应用。

Docker是什么?Docker是一个开源的应用容器引擎,系统级的轻量虚拟化龙虎大战坐庄技术 ,为应用程序的自动化部署提供解决方案。

龙虎大战坐庄你 可以快速创建一个容器,并在容器上开发和运行龙虎大战坐庄你 们的应用程序,通过配置文件可以轻松实现应用程序的自动化安装、部署和升级。

Docker的优势

Docker倍受业界追捧,必然有它非常明显的优势和特点。

  • 轻量级资源:容器是在进程级别隔离,并使用宿主机的内核,而不需要虚拟化整个操作系统。不需要虚拟化和系统调用复杂的操作。因此节省了很大的额外开销。不需要额外的hypervisor(虚拟化龙虎大战坐庄技术 )支持,不需要虚拟硬件,不需要额外完整的系统。
  • 可移植性:所需要的应用都在容器中,可以在任意一台docker主机上运行
  • 可预测性:宿主机和容器相互不关心对方都运行什么。只考虑所需的接口标准化。

再不动手把Docker用上,龙虎大战坐庄你 就真的out了。

2. 在Linux Ubuntu中安装Docker

安装Docker只需3步,龙虎大战坐庄下载 Docker, 安装Docker,检查Docker是否成功。

Docker目前支持主流的3种操作系统的Linux, Mac, 龙虎大战坐庄Win dows的环境,本文使用的Linux系统环境为:Linux Ubuntu 14.04.4 LTS 64bit。在Ubuntu中龙虎大战坐庄下载 和安装Docker可以直接用apt-get搞定。

由于Docker在1.7.1以后的版本指定了自己的源,所以龙虎大战坐庄龙虎大战坐庄我 们 需要先在APT中配置Docker的源。

更新APT的源,安装https和ca证书的库,默认这2个库都已经装了。


~ sudo apt-get update
~ sudo apt-get install apt-transport-https ca-certificates

添加秘钥GPG到APT配置中。


~ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

增加Docker的源到/etc/apt/souces.list文件中,龙虎大战坐庄我 的版本是14.04对应ubuntu-trusty。


~ sudo vi /etc/apt/sources.list

# 增加到最后一行
deb https://apt.dockerproject.org/repo ubuntu-trusty main

接下来,就可以用可以用apt-get直接安装Docker了。


~ sudo apt-get update
~ sudo apt-get install docker-engine

安装完成,默认会启动Docker。


# 检查docker龙虎大战坐庄服务

~ service docker status
docker start/running, process 10013

# 检查docker进行
~ ps -aux|grep docker
root     10013  0.0  1.0 424948 40584 ?        Ssl  22:29   0:00 /usr/bin/dockerd --raw-logs
root     10022  0.0  0.2 199680 10280 ?        Ssl  22:29   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shimdocker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc

# 检查docker版本
~ sudo docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:22:43 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:22:43 2016
 OS/Arch:      linux/amd64

检查Docker是否成功,运行hello-world。如果出现下面的信息,表示Docker引擎安装成功。


~ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete 
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the follo龙虎大战坐庄Win
g steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

注意:龙虎大战坐庄龙虎大战坐庄我 们 在执行上面的命令的时候,经常会遇到一个错误。Cannot connect to the Docker daemon. Is the docker daemon running on this host?

比如,直接输入 docker run hello-world 命令。


~ docker run hello-world
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.

这是由于权限的问题,docker默认和root权限绑定,如果不加sudo时则没有权限。

3. Docker镜像仓库

对于上面龙虎大战坐庄龙虎大战坐庄我 们 执行的docker run hello-world命令,是什么意思呢?

把3个词分开来看,docker代表docker程序,run代表命令,hello-world代表镜像。就是用docker启动hello-world镜像。由于龙虎大战坐庄龙虎大战坐庄我 们 刚装好的docker,龙虎大战坐庄本地 并没有镜像,那么run的命令会对docker远端的仓库中,找到名叫hello-world的镜像,然后龙虎大战坐庄下载 到龙虎大战坐庄本地 ,再运行。

Docker官方的镜像仓库访问龙虎大战坐庄地址 :https://hub.docker.com/

龙虎大战坐庄龙虎大战坐庄我 们 可以在Docker官方的仓库中,龙虎大战坐庄搜索 龙虎大战坐庄你 感兴趣的系统、语言、龙虎大战坐庄技术 框架等,有很多的龙虎大战坐庄技术 都已经被docker化了。龙虎大战坐庄龙虎大战坐庄我 们 就可以很方便地用别人已经做好的容器,站在前人的基础上继续工作。

docker-repo

从列表中点开一项后,会有对这个镜像的详细介绍。比如,Ubuntu的镜像。

docker-repo2

如果龙虎大战坐庄龙虎大战坐庄我 们 想要龙虎大战坐庄下载 这个镜像,只需要按照他的提示,在命令行输入 docker pull ubuntu 这样就行了。


~ sudo docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
2f0243478e1f: Pull complete 
d8909ae88469: Pull complete 
820f09abed29: Pull complete 
01193a8f3d88: Pull complete 
Digest: sha256:8e2324f2288c26e1393b63e680ee7844202391414dbd48497e9a4fd997cd3cbf
Status: Downloaded newer image for ubuntu:latest

龙虎大战坐庄下载 好后镜像,会保存在龙虎大战坐庄本地 的仓库中。查看龙虎大战坐庄本地 的镜像。


~ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              f8d79ba03c00        2 weeks ago         126.4 MB
hello-world         latest              c54a2cc56cbb        7 weeks ago         1.848 kB

目前,有2个龙虎大战坐庄本地 镜像,一个是hello-world,另一个是ubuntu。

4. 制作自己的Docker镜像

龙虎大战坐庄龙虎大战坐庄我 们 也可以制作自己的镜像,然后上传到官方的仓库中,让龙虎大战坐庄更多 的人来使用。如果要制作自己的Docker镜像,龙虎大战坐庄你 只需要写一个Dockerfile文件就行了。

下面龙虎大战坐庄龙虎大战坐庄我 们 创建一个能进行网络访问的Docker,从http://fens.me网站抓取最新8篇的文章列表,并打印到控制台。

docker-curl-fensme

创建项目目录


~ mkdir fensme && cd fensme

创建Dockerfile,依赖于上文中龙虎大战坐庄下载 的ubuntu镜像,还要需要安装curl库用于网页抓取,同时用于jq库解析JSON数据。


~ vi Dockerfile

FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl jq
CMD curl http://api.fens.me/blogs/ | jq .[]

打包,创建名为fensme的镜像。


# 打包
~ sudo docker build -t fensme .

# 查看镜像列表
~ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
fensme              latest              41b68972b35a        4 minutes ago       182.8 MB
ubuntu              latest              f8d79ba03c00        2 weeks ago         126.4 MB
hello-world         latest              c54a2cc56cbb        7 weeks ago         1.848 kB

运行fensme的镜像,这样就实现了网站数据的抓取。


~ sudo docker run fensme
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1421  100  1421    0     0    715      0  0:00:01  0:00:01 --:--:--   715
{
  "title": "R语言解读自回归模型",
  "date": 20160819,
  "link": "http://cnc77.com/r-ar/",
  "img": "http://cnc77.com/wp-content/uploads/2016/08/r-ar.png"
}
{
  "title": "R语言量化投资常用包总结",
  "date": 20160810,
  "link": "http://cnc77.com/r-quant-packages/",
  "img": "http://cnc77.com/wp-content/uploads/2016/08/quant-packages.png"
}
{
  "title": "R语言跨界调用C++",
  "date": 20160801,
  "link": "http://cnc77.com/r-cpp-rcpp",
  "img": "http://cnc77.com/wp-content/uploads/2016/08/rcpp.png"
}
{
  "title": "R语言解读多元线性回归模型",
  "date": 20160727,
  "link": "http://cnc77.com/r-multi-linear-regression/",
  "img": "http://cnc77.com/wp-content/uploads/2016/07/reg-multi-liner.png"
}
{
  "title": "R语言解读一元线性回归模型",
  "date": 20160725,
  "link": "http://cnc77.com/r-linear-regression/",
  "img": "http://cnc77.com/wp-content/uploads/2016/07/reg-liner.png"
}
{
  "title": "R语言中文分词包jiebaR",
  "date": 20160721,
  "link": "http://cnc77.com/r-word-jiebar/",
  "img": "http://cnc77.com/wp-content/uploads/2016/07/jiebaR.png"
}
{
  "title": "2016天善智能交流会第22场: R语言为量化而生",
  "date": 20160704,
  "link": "http://cnc77.com/meeting-hellobi-20160701/",
  "img": "http://cnc77.com/wp-content/uploads/2016/07/meeting-hellobi.png"
}
{
  "title": "R语言为量化而生",
  "date": 20160703,
  "link": "http://cnc77.com/r-finance/",
  "img": "http://cnc77.com/wp-content/uploads/2016/07/r-finance.png"
}

这个例子,龙虎大战坐庄龙虎大战坐庄我 们 通过Docker封装了一个非常简单的爬虫,当龙虎大战坐庄你 需要的时候启动它,把结果写到数据库中。当执行完任务,系统资源就释放了,龙虎大战坐庄你 需要再为它考虑。

比较简单地就可以把一个龙虎大战坐庄技术 或一个功能Docker化,从而构建出个性化的Docker。

5. 上传Docker镜像到公共仓库

最后一步,其实就是把龙虎大战坐庄龙虎大战坐庄我 们 做好的Docker镜像上传到官方的仓库中,让其他的人也可以使用。

首先需要去docker hub上面注册一个账号,然后登录进去。

docker-hub-login

在docker hub上,创建一个自己的仓库。

docker-hub-create

在龙虎大战坐庄本地 操作系统,绑定docker hub的账号


~ sudo docker login --username=bsspirit --email=bsspirit@163.com
Flag --email has been deprecated, will be removed in 1.13.
Password: 
Login Succeeded

接下来,要龙虎大战坐庄你 刚才创建的fensme的镜像加上命名空间,对应该docker hub上面镜像名bsspirit/fensme。


# 给fensme增加命名空间
~ sudo docker tag 8496b10e857a bsspirit/fensme:latest

~ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
bsspirit/fensme     latest              8496b10e857a        About a minute ago   182.8 MB
fensme              latest              8496b10e857a        15 minutes ago       182.8 MB
ubuntu              latest              f8d79ba03c00        2 weeks ago          126.4 MB
hello-world         latest              c54a2cc56cbb        7 weeks ago          1.848 kB

上传bsspirit/fensme镜像,然后龙虎大战坐庄你 就可以在docker hub的网站上看到龙虎大战坐庄你 自己的镜像了。


~ sudo docker push bsspirit/fensme
The push refers to a repository [docker.io/bsspirit/fensme]
d9c50c22842b: Pushed 
4699cbd1a947: Pushed 
2bed5b3ec49f: Pushed 
3834bde7e567: Pushed 
d8d865b23727: Pushed 
latest: digest: sha256:bfea736a92b6e602d6bbca867715b0e985f2e9bc3ea4a75b545d7e009e22ac2b size: 1362

打开docker hub网站,刷新页面。

docker-repo3

最后,如果其他人需要使用这个docker镜像,像最开始介绍的,直接龙虎大战坐庄下载 运行就可以了。


~ sudo docker run bsspirit/fensme

通过上面的操作,龙虎大战坐庄龙虎大战坐庄我 们 就把Docker在Linux Ubuntu中的系统安装完成。

转载请注明出处:
http://cnc77.com/linux-docker-install/

打赏作者

2015lopdev生态联盟开发者大会:股市中的R语言量化算法模型

跨界知识聚会系列文章,“知识是用来分享和传承的”,各种会议、龙虎大战坐庄论坛 、沙龙都是分享知识的绝佳场所。龙虎大战坐庄我 也有幸作为演讲嘉宾参加了一些国内的大型会议,向大家展示龙虎大战坐庄我 所做的一些成果。从听众到演讲感觉是不一样的,把知识分享出来,龙虎大战坐庄你 才能收获龙虎大战坐庄更多 。

龙虎大战坐庄关于 作者

  • 张丹(Conan), 程序员Java,R,Javascript
  • weibo:@Conan_Z
  • blog: http://cnc77.com
  • email: bsspirit@gmail.com

转载请注明出处:
http://cnc77.com/meeting-lopdev-20150922/

lopdev

前言

记得10年前还在上学的时候,总是参加IBM的大会,看着各种新龙虎大战坐庄技术 从实验室创造,特别地神奇。今天龙虎大战坐庄我 也有机会站在了IBM大会的讲台上,给大家分享龙虎大战坐庄我 所研究的R语言龙虎大战坐庄技术 ,对龙虎大战坐庄我 来说也是一件非常有纪念意义的事情。

感谢IBM主办方的邀请,也真心希望有机会与IBM建立龙虎大战坐庄合作 机会。

目录

  1. 龙虎大战坐庄我 的演讲主题:股市中的R语言量化算法模型
  2. 会议体验和照片分享

1. 龙虎大战坐庄我 的演讲主题:股市中的R语言量化算法模型

股市中的R语言量化算法模型,PPT龙虎大战坐庄下载 ,主要内容来自龙虎大战坐庄我 的一篇博文:R语言构建追涨杀跌量化交易模型

由于本次会议邀请准备时间太短,所以沿用了在数据分析师大会上的演讲内容,但也有不样的地方,增加了况客金融云的部分,通过在线的云环境,开发,部署,可视化自己的个性化的策略模型。

本次会议,龙虎大战坐庄我 被安排在了新龙虎大战坐庄技术 专场,虽然R并不被程序员所了解,但是R语言其实已经24年(1993年)的历史。由于听众大多是程序员,那么演讲内容就要简单直接,要有代码有真相,代码部分可以多多演示。

其他的几位嘉宾都是纯IT的底层龙虎大战坐庄技术 ,听起来确实有点吃力。那么龙虎大战坐庄我 正好讲一个金融应用,正好调节一下大家睡眠的神经。追涨杀跌策略就成为最好的一个金融初门策略的切入点。龙虎大战坐庄我 一直延续了一贯的演讲风格,有内容,有图片,有代码,有互动。从 追涨杀跌 的思路开始,到市场特征检验,再到数学公式,R语言建模,再到历史数据回测。通过R语言,很简单地就实现了一个龙虎大战坐庄龙虎大战坐庄我 们 脑子中的投资想法。类似的投资想法其实谁都有,利用IT人的龙虎大战坐庄技术 优势,可以真正地与实际操作结合起来,实现从IT龙虎大战坐庄技术 到价值的转变。

2. 会议体验和照片分享

本次大会不仅结识了很多同行的高手,同时听到不同领域对于数据的声音。群贤汇聚 思想碰撞,这也是对龙虎大战坐庄我 最大收获。会议龙虎大战坐庄主页 :http://lopdev.csdn.net/

12

2.1 龙虎大战坐庄我 的分享是在9月22日的新龙虎大战坐庄技术 分龙虎大战坐庄论坛 ,第四位分享嘉宾。

贾海鹏,中科超算,副总经理,主要介绍OpenBlas的项目情况。

01

杨瑞瑞,红帽,Linux开发主管,介绍了RedHat Linux 7.1内核的新特性。

03

陈飞,IBM,中国研究院资深研究员,介绍了OpenPower引擎,软硬件结合开发的新的框架标准。

04

张丹况客创始人CTO,《R的极客理想》系列图书作者,介绍了用R语言实现追涨杀跌的交易模型。

06

03

吴文昊,龙虎大战坐庄北京 旷视科技有限龙虎大战坐庄公司 ,云平台副总裁,介绍OpenBlas在移动平台尝试学习龙虎大战坐庄产品 上的应用。

07

2.2 用户互动

虽然是龙虎大战坐庄技术 的专场,龙虎大战坐庄我 的演讲还是吸引了一些感兴趣的小伙伴。把龙虎大战坐庄技术 变成价值,是所有学龙虎大战坐庄技术 的人都理想。

08

有一位来自印度的友人,中国文说的很不错,也在做龙虎大战坐庄互联网 方向的创业。

13

况客的单页展板,顿时感觉自己代表了龙虎大战坐庄企业 形象!下一次演讲龙虎大战坐庄龙虎大战坐庄我 们 会准备的更好,感谢况客市场总监Ruby为本次活动的精心安排。

11

2.3 个人采访

会议虽短,在最后还有个人采访环节。采访主题就围绕着“开源重构世界,开发改变未来”展来。看得出来IBM注重龙虎大战坐庄技术 的态度,同时也在大力推动开源项目的发展。况客,用到的所有龙虎大战坐庄技术 都是开源的龙虎大战坐庄产品 ,龙虎大战坐庄龙虎大战坐庄我 们 也会在合适的时候,把况客的龙虎大战坐庄技术 开放,反馈于开源社区。

IT人,加油!开源重构世界,开发改变未来!

09

最后,感谢IBM工作人员的辛苦劳动,希望保持高水平会议越办越好!

转载请注明出处:
http://cnc77.com/meeting-lopdev-20150922/

打赏作者

在Ubuntu中安装PHP

Ubuntu实用龙虎大战坐庄工具 系列文章,将介绍基于Linux ubuntu的各种龙虎大战坐庄工具 龙虎大战坐庄软件 的配置和使用。有些龙虎大战坐庄工具 大家早已耳熟能详,有些龙虎大战坐庄工具 经常用到但确依然陌生。龙虎大战坐庄我 将记录龙虎大战坐庄我 在使用操作系统时,安装及配置龙虎大战坐庄工具 上面的一些龙虎大战坐庄方法 ,把使用心得记录下来也便于自己的以后查找和回忆。

龙虎大战坐庄关于 作者:

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://cnc77.com
  • email: bsspirit@gmail.com

转载请注明出处:
http://cnc77.com/linux-php-install/

linux-php

前言

PHP是一种高效的Web开发语言,可以嵌入在 HTML 并由龙虎大战坐庄服务 器解释的脚本语言。PHP比CGI或者Perl更快速地执行动态网页,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和龙虎大战坐庄优化 代码运行,使代码运行更快。

PHP已广泛地被使用在各种Web系统和应用中。

目录

  1. PHP在龙虎大战坐庄Win dows中安装
  2. PHP在Linux Ubuntu中安装

1 PHP在龙虎大战坐庄Win dows中安装

1.1 龙虎大战坐庄下载 并解压PHP

在龙虎大战坐庄Win dows中安装PHP环境非常简单,直接龙虎大战坐庄下载 压缩文件(zip),解压即可。龙虎大战坐庄下载 龙虎大战坐庄地址 :http://龙虎大战坐庄Win dows.php.net/download/

解压目录:D:\toolkit\php-5.5.11

龙虎大战坐庄龙虎大战坐庄我 们 运行php.exe时,会弹出一个错误,计算机丢MSVCR110.ddl。

龙虎大战坐庄Win
-php

当遇到这个错误,龙虎大战坐庄龙虎大战坐庄我 们 需要安装VC11的相关组件,去微软官方去龙虎大战坐庄下载 对应的组件。龙虎大战坐庄下载 链接:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679

龙虎大战坐庄下载 对应的32位或64位的版本,双击安装龙虎大战坐庄下载 的文件vcredist_x64.exe。龙虎大战坐庄龙虎大战坐庄我 们 再次双击php.exe,运行PHP正常。

安装后PHP环境后,龙虎大战坐庄龙虎大战坐庄我 们 还需要安装Web龙虎大战坐庄服务 器,比如Apache, Nginx, ISS等。

1.2 龙虎大战坐庄下载 并解压Nginx

龙虎大战坐庄我 在这里介绍一下Nginx作为PHP的Web龙虎大战坐庄服务 器的安装和配置。

龙虎大战坐庄下载 龙虎大战坐庄Win dow版本的Nginx压缩文件(zip),龙虎大战坐庄下载 龙虎大战坐庄地址 :http://nginx.org/en/download.html

解压目录:D:\toolkit\nginx-1.5.11

+ Nginx龙虎大战坐庄服务 器运行命令:Nginx安装目录/nginx.exe

1.3 让PHP在Nginx中运行

1.3.1 修改PHP配置文件

让龙虎大战坐庄龙虎大战坐庄我 们 先配置PHP环境

进入PHP目录D:\toolkit\php-5.5.11,复制php.ini-development文件并创建新文件php.ini

编辑php.ini


~ vi php.ini

;设置PHP工作目录
extension_dir = "D:/toolkit/php-5.5.11/ext"

;设置支持mysql
extension=php_mysql.dll
extension=php_mysqli.dll

;让Nginx找到PHP
cgi.fix_pathinfo=1

注: php.ini文件中,分号”;”为注释

启动PHP的CGI程序,监听9000端口:

在龙虎大战坐庄Win dow的命令行窗口输入


~ D:\toolkit\php-5.5.11>php-cgi.exe -b 127.0.0.1:9000 -c php.ini

1.3.2 修改Nginx配置文件

进入Nginx目录D:\toolkit\nginx-1.5.11,找到配置文件conf/nginx.conf

  • PHP文件运行目录,D:/workspace/php
  • 设置访问域名,php.me
  • 设置对.php文件,通过fastcgi转向127.0.0.1:9000解析

编辑文件conf/nginx.conf


~ vi conf/nginx.conf

http {

   # 忽略部分代码

   server {
       set $htdocs D:/workspace/php/;

       listen 80;
       server_name php.me;

       location / {
           root $htdocs;
           autoindex on;
           index index.php index.html;
       }

       location ~ \.php$ {
           include fastcgi_params;
           fastcgi_index index.php;
           fastcgi_pass 127.0.0.1:9000;
           fastcgi_param SCRIPT_FILENAME $htdocs$fastcgi_script_name;
       }
   }
}

启动Nginx龙虎大战坐庄服务 器


~ D:\toolkit\nginx-1.5.11>nginx.exe

1.3.3 设置host

在host中把域名php.me映射为本机IP 127.0.0.1

编辑文件C:\龙虎大战坐庄Win dows\System32\drivers\etc\hosts


~ vi C:\龙虎大战坐庄Win
dows\System32\drivers\etc\hosts

127.0.0.1   php.me

在命令行窗口用ping命令


~ ping php.me

正在 Ping php.me [127.0.0.1] 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64

127.0.0.1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

1.3.4 PHP测试文件

在目录 D:/workspace/php/ 中,新建一个PHP的文件env.php


~ vi env.php

<?php phpinfo(); ?>

1.3.5 在浏览器中,查看PHP运行情况

在浏览器中打开HTTP龙虎大战坐庄地址 :http://php.me/env.php

php-env

这样龙虎大战坐庄龙虎大战坐庄我 们 就完成了,PHP在龙虎大战坐庄Win dow中的配置。

2 PHP在Linux Ubuntu中安装

相比龙虎大战坐庄Win dows中略显繁琐的配置,在Ubuntu中几行命令就可以完成。

龙虎大战坐庄龙虎大战坐庄我 们 将同样构建PHP与Nginx结合的Web龙虎大战坐庄服务 器环境。

2.1 龙虎大战坐庄下载 并安装PHP

默认情况,Ubuntu中会自带PHP。


# 查看PHP的版本
~ php -version
PHP 5.3.10-1ubuntu3.10 with Suhosin-Patch (cli) (built: Feb 28 2014 23:14:25)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

# 安装PHP依赖库
~ sudo apt-get install php5-cli php5-cgi

2.2 龙虎大战坐庄下载 并安装Nginx

龙虎大战坐庄下载 并安装nginx


~ sudo apt-get install nginx

# 启动nginx
~ sudo /etc/init.d/nginx start

# 查看Nginx运行状态
~ sudo /etc/init.d/nginx status
 * nginx is running

# 查看Nginx进程
~ ps -aux|grep nginx
root      2306  0.0  0.0  62860  1344 ?        Ss   15:31   0:00 nginx: master process /usr/sbin/nginx
www-data  2307  0.0  0.0  63216  1916 ?        S    15:31   0:00 nginx: worker process
www-data  2308  0.0  0.0  63216  1656 ?        S    15:31   0:00 nginx: worker process
www-data  2309  0.0  0.0  63216  1916 ?        S    15:31   0:00 nginx: worker process
www-data  2310  0.0  0.0  63216  1656 ?        S    15:31   0:00 nginx: worker process

2.3 龙虎大战坐庄下载 并安装spawn

spawn是一个FastCGI的应用,可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。

安装spawn-fcgi


~ sudo apt-get install spawn-fcgi

启动spawn-fcgi


~ sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -C 5 -p 9000 -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid
spawn-fcgi: child spawned successfully: PID: 2940

# 查看进程
~ ps -axu|grep cgi
root      2940  0.0  0.0  55196  6292 ?        Ss   15:40   0:00 /usr/bin/php-cgi
root      2941  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2942  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2943  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2944  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2945  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi

2.4 修改Nginx配置文件

  • PHP文件运行目录,/home/conan/php
  • 设置访问域名,ubuntu.php.me
  • 设置对.php文件,通过fastcgi转向127.0.0.1:9000解析

编辑文件:nginx.conf


~ sudo vi /etc/nginx/nginx.conf

http {

   # 忽略部分代码

   server {
       set $htdocs /home/conan/php;

       listen 80;
       server_name ubuntu.php.me;

       location / {
           root $htdocs;
           autoindex on;
           index index.php index.html;
       }

       location ~ \.php$ {
           include fastcgi_params;
           fastcgi_index index.php;
           fastcgi_pass 127.0.0.1:9000;
           fastcgi_param SCRIPT_FILENAME $htdocs$fastcgi_script_name;
       }
   }
}

重启nginx龙虎大战坐庄服务 器


~ sudo /etc/init.d/nginx restart
Restarting nginx: nginx.

2.5 设置host

在host中把域名ubuntu.php.me映射为本机IP 127.0.0.1


~ sudo vi /etc/hosts

127.0.0.1       ubuntu.php.me

用ping测试ubuntu.php.me


~ ping ubuntu.php.me
PING ubuntu.php.me (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.040 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.031 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.067 ms

2.6 PHP测试文件

在目录 /home/conan/php 中,新建一个PHP的文件env.php


~ mkdir /home/conan/php

~ vi /home/conan/php/env.php

<?php phpinfo(); ?>

2.7 在浏览器中,查看PHP运行情况

在浏览器中打开HTTP龙虎大战坐庄地址 :http://ubuntu.php.me/env.php

ubuntu-php

注:在浏览器端的host文件中,设置ubuntu.php.me域名对应到IP的映射。

这样龙虎大战坐庄龙虎大战坐庄我 们 完成了PHP在Ubuntu中的安装和配置了!

转载请注明出处:
http://cnc77.com/linux-php-install/

打赏作者

R的历史版本安装

R的极客理想系列文章,涵盖了R的思想,使用,龙虎大战坐庄工具 ,创新等的一系列要点,以龙虎大战坐庄我 个人的学习和体验去诠释R的强大。

R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,龙虎大战坐庄互联网 ….都在使用R语言。

要成为有理想的极客,龙虎大战坐庄龙虎大战坐庄我 们 不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让龙虎大战坐庄龙虎大战坐庄我 们 一起动起来吧,开始R的极客理想。

龙虎大战坐庄关于 作者:

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://cnc77.com
  • email: bsspirit@gmail.com

转载请注明出处:
http://cnc77.com/r-install-ubuntu/

r-install-history

前言

R语言龙虎大战坐庄软件 包已进入到了3.0的时代,但有些第三方的R包还处于2.15的状态,没有及时升级,像RHadoop,RHive。龙虎大战坐庄龙虎大战坐庄我 们 要用这些R包的时候,就需要指定版本的R龙虎大战坐庄软件 。

对于龙虎大战坐庄Win dows来说,这是很简单的操作,只要安装不同的(exe)文件就行了;对于Linux系统,龙虎大战坐庄龙虎大战坐庄我 们 也需要手动的进行配置。不熟悉Linux同学,在这里就很容易卡住。所以,今天就讲一下,在Linux Ubuntu系统中,R语言龙虎大战坐庄软件 包指定版本安装。

目录

  1. R在龙虎大战坐庄Win dows中安装
  2. R在Ubuntu中安装
  3. R在Ubuntu中最新版本安装
  4. R在Ubuntu中指定版本安装

1. R在龙虎大战坐庄Win dows中安装

通过R的官方网站http://cran.r-project.org/,龙虎大战坐庄龙虎大战坐庄我 们 可以龙虎大战坐庄下载 Linux, MacOS, 龙虎大战坐庄Win dows系统的R语言安装包。

R在龙虎大战坐庄Win dows系统中安装非常简单,双击龙虎大战坐庄下载 的可执行文件(.exe),即可进行安装。

安装后,运行R语言的界面

r-龙虎大战坐庄Win

2. R在Ubuntu中安装

本文基于的Linux是Ubuntu 12.04.2 LTS 64bit的系统,安装R语言龙虎大战坐庄软件 包可以通过apt-get实现。

在Linux Ubuntu中安装R语言


#检查R是否已安装
~  R
The program 'R' is currently not installed.  You can install it by typing:
sudo apt-get install r-base-core

# 根据提示安装R语言龙虎大战坐庄软件
包
~ sudo apt-get install r-base-core

# 检查R的版本
~ R --version
R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License version 2.
For more information about these matters see
http://www.gnu.org/licenses/.

发现R安装的默认版本是2.14.1,这与本书的中R的版本是不符的,接下来龙虎大战坐庄龙虎大战坐庄我 们 希望安装最新版本R的龙虎大战坐庄软件 包。

3. R在Ubuntu中最新版本安装

首先,龙虎大战坐庄删除 Linux Ubuntu系统中原有的R龙虎大战坐庄软件 包。


sudo apt-get autoremove r-base-core

接下来,龙虎大战坐庄龙虎大战坐庄我 们 找到一个Ubuntu的龙虎大战坐庄软件 源镜像(http://mirror.bjtu.edu.cn/cran/bin/linux/ubuntu/) ,Linux Ubuntu 12.04对应的名字是precise,进入到precise/目录,找到r-base-core相关的文件,发现有不同的R的版本。

source.list

把这个龙虎大战坐庄软件 源,增加到apt的sources.list文件中


# 在sources.list文件最下面,新加一行
~ sudo sh -c "echo deb http://mirror.bjtu.edu.cn/cran/bin/linux/ubuntu precise/ >>/etc/apt/sources.list"

#更新源
~ sudo apt-get update

#再次安装R语言龙虎大战坐庄软件
包
~ sudo apt-get install r-base-core

# 检查R的版本
~ R --version
R version 3.0.3 (2014-03-06) -- "Warm Puppy"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

这时龙虎大战坐庄龙虎大战坐庄我 们 就安装了,最新的R语言3.0.3版本。

4. R在Ubuntu中指定版本安装

由于本书中的例子,大部分是基于3.0.1完成的,RHadoop的例子是基于2.15.3完成的,因此龙虎大战坐庄龙虎大战坐庄我 们 还需要指定R的安装版本。

安装R的2.15.3版本


# 龙虎大战坐庄删除
系统中原有的R龙虎大战坐庄软件
包
~ sudo apt-get autoremove r-base-core

# 安装R的2.15.3版本
~ sudo apt-get install r-base-core=2.15.3-1precise0precise1

# 检查R语言龙虎大战坐庄软件
包版本
~ R --version
R version 2.15.3 (2013-03-01) -- "Security Blanket"
Copyright (C) 2013 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

安装R的3.0.1版本


# 龙虎大战坐庄删除
系统中原有的R龙虎大战坐庄软件
包
~ sudo apt-get autoremove r-base-core

# 检查直接的版本
~ sudo apt-cache showpkg r-base

# 安装R的3.0.1版本
~ sudo apt-get install r-base-core=3.0.1-6precise0

# 检查R语言龙虎大战坐庄软件
包版本
~ R --version
R version 3.0.1 (2013-05-16) -- "Good Sport"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

这样龙虎大战坐庄龙虎大战坐庄我 们 就可以很方便的,指定安装不同版本的R的语言。

转载请注明出处:
http://cnc77.com/r-install-ubuntu/

打赏作者

用Puppet进行系统管理

Ubuntu实用龙虎大战坐庄工具 系列文章,将介绍基于Linux ubuntu的各种龙虎大战坐庄工具 龙虎大战坐庄软件 的配置和使用。有些龙虎大战坐庄工具 大家早已耳熟能详,有些龙虎大战坐庄工具 经常用到但确依然陌生。龙虎大战坐庄我 将记录龙虎大战坐庄我 在使用操作系统时,安装及配置龙虎大战坐庄工具 上面的一些龙虎大战坐庄方法 ,把使用心得记录下来也便于自己的以后查找和回忆。

龙虎大战坐庄关于 作者:

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://cnc77.com
  • email: bsspirit@gmail.com

转载请注明出处:
http://cnc77.com/linux-manage-puppet/

linux-puppet

前言

系统运维本是一件枯燥,而且重复性强的工作,不停地搞命令占据了运维人员的大量时间。Puppet通过一种集中式管理的设计,让运维变得简单可控。管理员只需要在master节点修改配置,绑定的客户端节点就会自动同步配置,让命令行也能通过配置实现。

第一次尝试,从安装开始。

目录

  1. Puppet是什么?
  2. Puppet龙虎大战坐庄服务 器安装及配置
  3. Puppet客户端安装及配置
  4. 注册puppet客户端到龙虎大战坐庄服务 器端
  5. 例子:生成文件测试

1. Puppet是什么?

puppet是一种Linux、Unix、龙虎大战坐庄Win dows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、龙虎大战坐庄软件 包、系统龙虎大战坐庄服务 等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

puppet采用C/S星状的结构,所有的客户端和一个或几个龙虎大战坐庄服务 器交互。每个客户端周期的(默认半个小时)向龙虎大战坐庄服务 器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次龙虎大战坐庄服务 器端, 龙虎大战坐庄下载 最新的配置文件,并且严格按照配置文件来配置龙虎大战坐庄服务 器. 配置完成以后,puppet客户端可以反馈给龙虎大战坐庄服务 器端一个消息. 如果出错,也会给龙虎大战坐庄服务 器端反馈一个消息.

2台龙虎大战坐庄服务 器的环境配置:

Master Server:

  • Linux Ubuntu 12.04.2 LTS 64bit
  • ip: 192.168.1.201
  • hostname: vm1
  • ruby: 1.8.7

Client Server:

  • Linux Ubuntu 12.04.2 LTS 64bit
  • ip: 192.168.1.202
  • hostname: vm2
  • ruby: 1.8.7

2. Puppet龙虎大战坐庄服务 器安装及配置

  • 切换到root用户
  • 设置host
  • 安装Puppet龙虎大战坐庄服务 器端

切换到root用户


~ sudo -i
~ whoami
root

设置host


~ hostname vm1
~ hostanme
vm1

~ vi /etc/hosts
127.0.0.1       localhost
192.168.1.201   vm1
192.168.1.202   vm2

2). 安装Puppet龙虎大战坐庄服务 器端


#安装并启动Puppet龙虎大战坐庄服务
器端
~ apt-get install puppetmaster

#检查端口8140
~ netstat -nlt |grep 8140
tcp        0      0 0.0.0.0:8140            0.0.0.0:*               LISTEN
   
#查看Puppet的版本
~ puppet -V
2.7.11

#启动Puppet龙虎大战坐庄服务
器
~  puppet master --verbose --no-daemonize
notice: Starting Puppet master version 2.7.11

3). 配置Puppet龙虎大战坐庄服务 器,在[master]标签下,增加certname设置


~ vi /etc/puppet/puppet.conf

[master]
certname=vm1 #增加龙虎大战坐庄服务
器配置

#重启Puppet龙虎大战坐庄服务
器
~ /etc/init.d/puppetmaster restart
* Restarting puppet master 

4). 查看Puppet龙虎大战坐庄服务 器的证书


~ puppet cert --list --all
+ "vm1" (60:0E:1D:8F:80:0B:5D:7D:F8:8B:C7:C6:DF:CF:69:43)

+ 为已注册的证书

这样龙虎大战坐庄龙虎大战坐庄我 们 就完成了,龙虎大战坐庄服务 器端的配置!接下来,继续进行客户端的配置。

3. Puppet客户端安装及配置

切换到root用户


~ sudo -i
~ whoami
root

设置host


~ hostname vm2
~ hostanme
vm2

~ vi /etc/hosts
127.0.0.1       localhost
192.168.1.201   vm1
192.168.1.202   vm2

2). 安装Puppet龙虎大战坐庄服务 器端


#安装并启动Puppet客户端
~ apt-get install puppet
   
#查看Puppet的版本
~ puppet -V
2.7.11

3). 配置Puppet客户端,在[agent]标签下增加server设置


~ sudo vi /etc/puppet/puppet.conf

[agent]
server=vm1

4). 配置Puppet客户端default值,修改START设置


~ vi /etc/default/puppet

START=yes

设置START把no改为yes

重启Puppet客户端


~ /etc/init.d/puppet restart
* Restarting puppet agent

4. 注册puppet客户端到龙虎大战坐庄服务 器端

1). 检查龙虎大战坐庄服务 器端的证书


#龙虎大战坐庄服务
器端操作
~ puppet cert --list --all
+ "vm1" (60:0E:1D:8F:80:0B:5D:7D:F8:8B:C7:C6:DF:CF:69:43)

2). 在龙虎大战坐庄服务 器端(vm1)创建文件site.pp


#龙虎大战坐庄服务
器端操作
~ sudo vi /etc/puppet/manifests/site.pp

node default {
  notify { "Hey ! It works !": }
}

3). 从客户端(vm2)向龙虎大战坐庄服务 器端发起注册请求


#客户端操作
~ puppet agent -t
info: Creating a new SSL key for vm2
info: Caching certificate for ca
info: Creating a new SSL certificate request for vm2
info: Certificate Request fingerprint (md5): 15:45:D1:22:1B:97:6D:49:43:BC:93:D8:BB:4C:E1:99
Exiting; no certificate found and waitforcert is disabled

#如果之前生成发启过认证请求,则需要龙虎大战坐庄删除
证书的目录
~ rm -rf /var/lib/puppet/ssl
~ puppet agent -t

4). 龙虎大战坐庄服务 器端(vm1)查看客户端请求认证的列表


#龙虎大战坐庄服务
器端操作
~ puppet cert --list
  "vm2" (15:45:D1:22:1B:97:6D:49:43:BC:93:D8:BB:4C:E1:99)

5). 龙虎大战坐庄服务 器端(vm1)接受客户端的请求


#龙虎大战坐庄服务
器端操作
~ puppet cert --sign vm2
notice: Signed certificate request for vm2
notice: Removing file Puppet::SSL::CertificateRequest vm2 at '/var/lib/puppet/ssl/ca/requests/vm2.pem'

#可以接受所有的请求
~ puppet cert -s -a

#查看认证后,查看龙虎大战坐庄服务
器上公钥的位置
~ sudo ls  /var/lib/puppet/ssl/ca/signed/
vm1.pem  vm2.pem

6). 龙虎大战坐庄服务 器端(vm1)查看的证书列表


#龙虎大战坐庄服务
器端操作
~ puppet cert --list --all
+ "vm1" (B7:45:28:1B:AE:53:0B:D7:38:8E:66:70:6C:B8:13:A4)
+ "vm2" (FB:64:C7:38:DA:B4:C7:0B:E6:3B:85:86:9A:F4:61:C2)

7). 客户端(vm2)执行龙虎大战坐庄服务 器设置的脚本site.pp


#客户端操作
~ puppetd --test
info: Caching certificate for vm2
info: Caching certificate_revocation_list for ca
info: Caching catalog for vm2
info: Applying configuration version '1383527011'
notice: Hey ! It works !
notice: /Stage[main]//Node[default]/Notify[Hey ! It works !]/message: defined 'message' as 'Hey ! It works !'
notice: Finished catalog run in 0.02 seconds

龙虎大战坐庄龙虎大战坐庄我 们 看到’Hey ! It works !’,被正常显示出来。

5. 例子:生成文件测试

1). 生成文件测试,在/tmp目录下生成一个文件hello.txt。

在龙虎大战坐庄服务 器端修改一个文件site.pp


~ vi /etc/puppet/manifests/hello.pp

node default {
  notify { "Hey ! It works !": }
  file {
    "/tmp/hello.txt": content => "hello world";
  }
}

2). 在龙虎大战坐庄服务 器端运行hello.pp文件


~ puppet apply /etc/puppet/manifests/site.pp
warning: Could not retrieve fact fqdn
warning: Host is missing hostname and/or domain: vm1
notice: /Stage[main]//Node[default]/File[/tmp/hello.txt]/ensure: defined content as '{md5}5eb63bbbe01eeed093cb22bb8f5acdc3'
notice: Hey ! It works !
notice: /Stage[main]//Node[default]/Notify[Hey ! It works !]/message: defined 'message' as 'Hey ! It works !'
notice: Finished catalog run in 0.02 seconds

#检查生成的文件
~ cat /tmp/hello.txt
hello world

3). 在客户端同步


~  puppet agent --test --server=vm1
info: Caching catalog for vm2
info: Applying configuration version '1383528346'
notice: /Stage[main]//Node[default]/File[/tmp/hello.txt]/ensure: defined content as '{md5}5eb63bbbe01eeed093cb22bb8f5acdc3'
notice: Hey ! It works !
notice: /Stage[main]//Node[default]/Notify[Hey ! It works !]/message: defined 'message' as 'Hey ! It works !'
notice: Finished catalog run in 0.07 seconds

#检查生成的文件
~ cat /tmp/hello.txt
hello world

这样龙虎大战坐庄龙虎大战坐庄我 们 就实现了第一个最简单的利用Puppet自动化运维的例子。出步尝试已经成功,接下来就像要深入研究Puppet到底能干什么,实现系统的高效运维。

转载请注明出处:
http://cnc77.com/linux-manage-puppet/

打赏作者