$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql57-community
$ yum info mysql-community-server
$ sudo yum install mysql-community-server -y
$ mysqld --version
$ sudo systemctl start mysqld.service
$ sudo systemctl enable mysqld.service
$ systemctl status mysqld.service
5.7以降では、rootのパスワードがtemporaryで発行されてしまいlogを見ないとわからない
grep 'temporary password' /var/log/mysqld.log
セキュリティ設定
$ sudo mysql_secure_installation
$ mysql -u root
mysql> CREATE DATABASE rundeck;
mysql> grant ALL on rundeck.* to 'rundeckuser'@'localhost' identified by 'rundeckpassword';
- /etc/rundeck/rundeck-config.properties
dataSource.url = jdbc:mysql://myserver/rundeck?autoReconnect=true&useSSL=false
dataSource.username=rundeckuser
dataSource.password=rundeckpassword
dataSource.driverClassName=com.mysql.jdbc.Driver
- Project Name > Project Setting > Export Archive
- Choise include type
- Export Archive
- Download project_*_rdproject.jar
RPMの場合
- /var/rundeck/projects
- /var/lib/rundeck/data
s3にバックアップを取る
$ aws s3 cp /var/rundeck/projects/ s3://buckets/path/projects --recursive
$ aws s3 cp /var/lib/rundeck/data/ s3://buckets/path/projects --recursive
$ sudo systemctl restart rundeckd
- Project Name > Project Setting > Import Archive
- Choise download jar file
- Choise Impoorted jobs
#!/bin/bash -e
function join { local IFS="$1"; shift; echo "$*"; }
# keep last 30 executions for each job
KEEP=30
cd /var/lib/rundeck/logs/rundeck
JOBS=`find . -maxdepth 3 -path "*/job/*" -type d`
for j in $JOBS ; do
echo "Processing job $j"
ids=`find $j -iname "*.rdlog" | sed -e "s/.*\/\([0-9]*\)\.rdlog/\1/" | sort -n -r`
echo $ids
declare -a JOBIDS=($ids)
if [ ${#JOBIDS[@]} -gt $KEEP ]; then
for job in ${JOBIDS[@]:$KEEP};do
echo " * Deleting job: $job"
rm -rf $j/logs/$job.*
done
job_ids=$(join , ${JOBIDS[@]:$KEEP})
wf_id=$(join , $(mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "SELECT workflow_id FROM execution WHERE id IN(${job_ids})\G" | awk '/workflow_id/{print $2}'))
wfs_id=$(join , $(mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "SELECT workflow_step_id wfsid FROM workflow_workflow_step WHERE workflow_commands_id IN(${wf_id}) \G" | awk '/wfsid/{print $2}'))
mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "DELETE FROM log_file_storage_request WHERE execution_id IN(${job_ids})"
mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "DELETE FROM referenced_execution WHERE execution_id IN(${job_ids})"
mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "DELETE FROM execution WHERE id IN(${job_ids})"
mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "DELETE FROM base_report WHERE jc_exec_id IN(${job_ids})"
mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "DELETE FROM workflow WHERE id IN(${wf_id})"
mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "DELETE FROM workflow_workflow_step WHERE workflow_commands_id IN(${wf_id})"
mysql --defaults-extra-file=/etc/rundeck/rundeck_user.cnf rundeck -e "DELETE FROM workflow_step WHERE id IN ($wfs_id)"
fi
done