使用Chef cookbook安装和启动PostgreSQL服务的软件包
我正在 CentOS 6.5 上进行确认。
首先,确认手动操作的步骤。
-
- 安装PostgreSQL软件包:
-
- 使用yum安装postgresql和postgresql-server。
初始化PostgreSQL:
运行postgresql初始化服务。
启动PostgreSQL服务:
运行postgresql启动服务。
厨师准备了《Chef Culinary Book》。
创建代码库
# knife create repository /tmp/che-repo
制作菜谱
如果要在site-cookbooks目录下创建一个名为postgresql的cookbook,则使用以下命令。
$ cd /path/to/repository/
$ knife cookbook create postgresql -o site-cookbooks
安装PostgreSQL软件包的步骤
将 recipes/default.rb 文件写成以下内容。
package "postgresql" do
action :install
end
package "postgresql-server" do
action :install
end
PostgreSQL初始化配方
在recipes/default.rb中添加以下内容
execute "postgrosql-init" do
not_if "test -f /var/lib/pgsql/data/postgresql.conf"
command "service postgresql initdb"
action :run
end
书面形式如下:
-
- postgresql-init は任意の文字列
command “rootユーザーで実行するコマンド”
执行postgresql initdb将创建/var/lib/pgsql/data/postgresql.conf文件,因此,我们将条件“仅在/var/lib/pgsql/data/postgresql.conf不存在时执行postgresql initdb”作为not_if参数进行描述。
启动PostgreSQL服务的方法
请在 recipes/default.rb 文件中添加以下内容。
service "postgresql" do
action [:enable , :start]
end
从执行”service postgresql start”的动作,可以将其写成“`service “postgresql”“`。
厨师执行了Chef Cookbook。
以下是中文的同义句:
执行以下选项之一:
1. 参考链接:http://qiita.com/gigatune/items/01f775fb615df8d1d361,执行chef-solo
2. 参考链接:http://qiita.com/gigatune/items/e13828c895442ca18252,在Vagrant的配置过程中执行
我已经将在上述链接中创建的 cookbook 以及在 Vagrant 中执行的 Vagrantfile 文件上传到 https://github.com/gigatune/DevOps/tree/master/PostgreSQL。