====== CentOS KickstartでPostgreSQLを自動セットアップする ====== ===== %postスクリプト ===== [[centos:kickstart:kscfg|CentOS Kickstart 設定ファイル]]から抜粋してます。 # create working directory mkdir /tmp/postgres # create logging directory mkdir /tmp/postgres/logs cd /tmp/postgres cp -r /root/postgres/* . bash /tmp/postgres/postgres-setup.sh 2>&1 | tee /tmp/postgres/logs/postgres-setup.log ===== postgres-setup.sh ===== #!/bin/bash chmod -R 777 /tmp/postgres # initialize database /etc/rc.d/init.d/postgresql initdb # copy config file \cp -rf /tmp/postgres/postgresql.conf /var/lib/pgsql/data/postgresql.conf \cp -rf /tmp/postgres/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf \cp -rf /tmp/postgres/etc/init.d/postgresql /etc/init.d/postgresql # start service /etc/rc.d/init.d/postgresql start # set database password sudo -u postgres bash /tmp/postgres/postgres-create-database.sh chkconfig postgresql on ===== postgres-create-database.sh ===== postgresユーザで実行されます。 自分の環境ではportを変えていますが、デフォルトのポートの場合は-pのオプションは不要です。 またパスワードはマスクかけてます。 #/bin/bash # set password psql -p ???? -c "alter user postgres with password '??????????????'" # create user createuser -p ???? --superuser --createdb --createrole scpostgres # set password psql -p ???? -c "alter user scpostgres with password '??????????????'" # create schema psql -p ???? -c "create schema scmain authorization scpostgres" psql -p ???? -c "alter user scpostgres set search_path to scmain" exit ===== postgresql.conf ===== 外部からの接続を許可します。 listen_addresses = '*' # what IP address(es) to listen on; デフォルトからportを変えます。 port = ????? # (change requires restart) ログの出力形式を変えます。 log_line_prefix = '%t %u %d ' # special values: エンコーディングをsjisに変えます。 client_encoding = sjis # actually, defaults to database ===== pg_hba.conf ===== 以下の行を追加します。 host all all 0.0.0.0/0 trust ===== etc/init.d/postgresql ===== portを変更したものに置き換えます。