[转]程序员可以在周末做的8件事

在过去的几十年里已经有许多国家有一二天的周末。周末是拔掉的日常工作得到充电的重要时刻。他们也提供了更深入地思考事情的好机会。

程序员(开发商或软件工程师)是非常特殊的职业比其他人,尽管有很多工作需要使用计算机。
灵感来自“成功人士在周末做的14件事“杰奎琳史密斯写的,在这里我总结的程序员可以在周末做有益的事情。

我希望,如果你是一个程序员,你的周末计划,可以说一下你的想法。

1. 把时间给家人和朋友。

1

在平日技术领域的程序员通常都很忙,所以周末的时间就留给你的家人和朋友。这也是其他领域的人该做的。

2. 一天没有电脑(无电脑日)

2

有些人曾试图没有科技,这意味着在白天不使用任何技术。电脑完全断开这可能是不现实的,
但至少有一些是可以避免的。不接触电脑基本上意味着没有电脑有关的工作(比如敲代码)。

3. 户外活动:出去旅行,自行车,跑步,钓鱼,划船。

3

可以利用的周末的时间去运动,现在公园到处都是,你应该去做一些运动,加强自己的身体

puppet管理之用户与SSH信任关系管理

cat manifests/modules.pp

import "users"

cat manifests/nodes.pp

node base {
        include hosts,sysctl,cron::puppet_cron,puppet
}

#puppet test
node "puppettest01.bj","puppettest02.bj" inherits base {
        include users::elain
}

cat modules/users/manifests/init.pp

class users::elain {
    group { "elain":
            gid => 11001,
            ensure =>present;   
    }
    user { "elain":
            ensure => "present",
            uid => 11001,
            gid => 11001,
            groups => elain,
            shell =>"/bin/bash",
            home => "/home/elain",
            managehome =>"true",
            require => Group["elain"];
    }

    ssh_authorized_key{ "hh-b2c-console01.bj":
            ensure=>present,
            type=>"ssh-rsa",
            key=>"AAAAB3NzaC1yc2EAAAABIwAAAQEAxzWKPyeYFPGZXNIRdz4a7BK6c+xK7xKBgM1HO1OImDi0QFJ0wtxLHIbV9AUcf9dsehQOyfjVhasgJNCoOlHzf7plQ6UmsK5cUmmMUYcN4pw13CqEwYQ/JuwWt2neZ9u6YD+v6/uzi9CclFFlqmNHtL+EIXY/ncrUexikAZlCLvErXIGILnRAUEILmz/IEujU0XuR6CDt54l6gu8/hgAKqmKGkrR2vysCYykQamGr9muvnJ6E4sCawQGNunhmIbmmHV6ub4sp17CSObehqTvtBKXu9T0sVHlBp981soTO2+BQnpjBf7GjSkbyqFYT0s3cqHTvjOGKv7lD2ZK/v3cL0w==",
            name=>"console01.bj",
            target=>"/home/elain/.ssh/authorized_keys",
            user=>''''''''elain'''''''',
    }
}

Puppet常用模块

下面这些都是工作中常用的一些模块:

#create files

file { “/tmp/elain.txt”:
content=>”I’’’’’’’’m test puppet”;
}

#create directory

file {
“/tmp/puppetDir”:
ensure => absent,
force => true
}

#create link

file { “/tmp/FileForlink”:
ensure => link,
target => “/var/log/messages”
}

file { “/tmp/rc.local.txt”:
ensure => “/etc/rc.local”
}

#add cron

cron { “update time add by elain”:
command => “/usr/sbin/ntpdate ntp1.pt.elain.org >/dev/null 2>&1”,
minute => ‘’0’’,
hour => ‘’/3’’,
monthday => ‘’
‘’,
ensure => present,
}
cron { “每三小时重启nginx add by elain”:
command => “/etc/init.d/nginx restart”,
minute => ‘’‘’,
hour => [‘’2-4’’],
monthday => ‘’
‘’,
ensure => present,
}

在Puppet使用中针对域名形式主机名取$hostname的问题

今天测试使用puppet中的if来针对同一node组里不同hostname配件不同的文件,由于同一node组里多个class 一样,且是一个WEB集群,只有一台需要添加一个调试跟踪工具,配置有所不同,所以使用if判断去做匹配,不想把它再独立成一个node.

node配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13

node base {
include hosts,sysctl
}

#puppet test
node "puppettest01.bj","puppettest02.bj" inherits base {
if $hostname == "puppettest02.bj" {
include php::hd_1
} else {
include php::hd_2
}
}

没试不通过,怀疑是变量获取有问题,于是在puppettest01.bj 上执行 facter 来查看变量

1
2
3
4
5
6

# facter
architecture = x86_64
domain =bj
fqdn = puppettest01.bj
hostname = puppettest01

而我的puppettest01.bj的服务器上查看是这样的

1
2
3

#hostname
puppettest01.bj

从上面信息可以看到我们的 $hostname 是puppettest01 ,而非 puppettest01.bj , facter 获取hostname时截断了.bj, 即:$hostname=puppettest01 ,而我在上面的配置里是使用的 puppettest01.bj

所以无法匹配到,于是改成了下面的配置

1
2
3
4
5
6
7
8
9
10
11
12
13

node base {
include hosts,sysctl
}

#puppet test
node "puppettest01.bj","puppettest02.bj" inherits base {
if $hostname == "puppettest02" {
include php::hd_1
} else {
include php::hd_2
}
}

测试通过。
注:此案例只针对像 puppettest01.bj 这样使用域名方式的主机名有效。

第二种解决方法:
也可使用 $fqdn 变量来匹配,代码如下:

,