-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
deb:rpm: stop editing settings for migration
The old service file should work as before. So, we shouldn't touch the current settings by our own assumptions. Signed-off-by: Daijiro Fukuda <fukuda@clear-code.com>
- Loading branch information
Showing
10 changed files
with
233 additions
and
122 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
111 changes: 111 additions & 0 deletions
111
fluent-package/apt/systemd-test/update-from-v4-with-old-service-file.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
#!/bin/bash | ||
|
||
set -exu | ||
|
||
. $(dirname $0)/../commonvar.sh | ||
|
||
# TODO: Remove it when v5 repository was deployed | ||
sudo apt install -y curl ca-certificates | ||
curl -O https://packages.treasuredata.com/4/${distribution}/${code_name}/pool/contrib/f/fluentd-apt-source/fluentd-apt-source_2020.8.25-1_all.deb | ||
sudo apt install -y ./fluentd-apt-source_2020.8.25-1_all.deb | ||
|
||
# Install v4 | ||
sudo apt clean all | ||
# Uncomment when v5 repository was deployed | ||
#apt_source_package=/vagrant/${distribution}/pool/${code_name}/${channel}/*/*/fluent-apt-source*_all.deb | ||
#sudo apt install -V -y ${apt_source_package} ca-certificates | ||
sudo apt update | ||
sudo apt install -V -y td-agent=4.5.0-1 | ||
|
||
systemctl status --no-pager td-agent | ||
|
||
# Set custom service as "td-agent-server" | ||
sleep 3 | ||
sudo systemctl stop td-agent | ||
sudo cp /lib/systemd/system/td-agent.service /etc/systemd/system/td-agent-server.service | ||
sudo cp /etc/logrotate.d/td-agent /etc/logrotate.d/td-agent-server | ||
sudo cp /etc/td-agent/td-agent.conf /etc/td-agent/td-agent-server.conf | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/etc/td-agent/td-agent.conf,/etc/td-agent/td-agent-server.conf,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/var/run/td-agent/td-agent.sock,/var/run/td-agent-server/td-agent-server.sock,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/var/log/td-agent/td-agent.log,/var/log/td-agent/td-agent-server.log,g' | ||
sudo sed -i /etc/logrotate.d/td-agent-server -e 's,/var/log/td-agent/td-agent.log,/var/log/td-agent/td-agent-server.log,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/etc/default/td-agent,/etc/default/td-agent-server,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/var/run/td-agent/td-agent.pid,/var/run/td-agent-server/td-agent-server.pid,g' | ||
sudo sed -i /etc/logrotate.d/td-agent-server -e 's,/var/run/td-agent/td-agent.pid,/var/run/td-agent-server/td-agent-server.pid,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,RuntimeDirectory=td-agent,RuntimeDirectory=td-agent-server,g' | ||
sudo systemctl daemon-reload | ||
sudo systemctl enable --now td-agent-server | ||
|
||
# Install the current | ||
sleep 3 | ||
sudo systemctl stop td-agent-server | ||
sudo apt install -V -y \ | ||
/vagrant/${distribution}/pool/${code_name}/${channel}/*/*/fluent-package_*_${architecture}.deb | ||
|
||
# Manual migration | ||
sleep 3 | ||
sudo systemctl stop td-agent | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/lib/libjemalloc.so,/opt/fluent/lib/libjemalloc.so,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/lib/ruby/gems/2.7.0/,/opt/fluent/lib/ruby/gems/3.2.0/,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/lib/ruby/gems/2.7.0/,/opt/fluent/lib/ruby/gems/3.2.0/,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/bin/fluentd,/opt/fluent/bin/fluentd,g' | ||
echo "Alias=fluentd.service" | sudo tee -a /etc/systemd/system/td-agent-server.service | ||
|
||
sudo systemctl daemon-reload | ||
sudo systemctl enable --now td-agent-server | ||
|
||
# Somehow, we need to restart the service to apply "/etc/systemd/system/td-agent-server.service" | ||
systemctl status --no-pager td-agent-server | ||
sudo systemctl restart td-agent-server | ||
|
||
# Test: service status | ||
systemctl status --no-pager td-agent-server | ||
systemctl status --no-pager fluentd | ||
|
||
# Test: config migration | ||
test -L /etc/td-agent | ||
test -e /etc/td-agent/td-agent-server.conf | ||
|
||
# Test: log file migration | ||
test -L /var/log/td-agent | ||
test -e /var/log/td-agent/td-agent-server.log | ||
|
||
# Test: bin file migration | ||
test -h /usr/sbin/td-agent | ||
test -h /usr/sbin/td-agent-gem | ||
|
||
# Test: environmental variables | ||
pid=$(systemctl show fluentd --property=MainPID --value) | ||
env_vars=$(sudo sed -e 's/\x0/\n/g' /proc/$pid/environ) | ||
test $(eval $env_vars && echo $HOME) = "/var/lib/td-agent" | ||
test $(eval $env_vars && echo $LOGNAME) = "td-agent" | ||
test $(eval $env_vars && echo $USER) = "td-agent" | ||
test $(eval $env_vars && echo $FLUENT_CONF) = "/etc/td-agent/td-agent-server.conf" | ||
test $(eval $env_vars && echo $TD_AGENT_LOG_FILE) = "/var/log/td-agent/td-agent-server.log" | ||
test $(eval $env_vars && echo $FLUENT_PLUGIN) = "/etc/td-agent/plugin" | ||
test $(eval $env_vars && echo $FLUENT_SOCKET) = "/var/run/td-agent-server/td-agent-server.sock" | ||
|
||
# Test: No error logs | ||
# (v4 default config outputs 'warn' log, so we should check only 'error' and 'fatal' logs) | ||
sleep 3 | ||
(! grep -e '\[error\]' -e '\[fatal\]' /var/log/td-agent/td-agent-server.log) | ||
|
||
# Test: logrotate config migration | ||
test -e /etc/logrotate.d/td-agent-server | ||
test -e /var/log/fluent/td-agent-server.log | ||
|
||
sudo logrotate -f /etc/logrotate.d/td-agent-server | ||
sleep 1 | ||
|
||
test -e /var/log/fluent/td-agent-server.log.1 | ||
sudo cp /var/log/fluent/td-agent-server.log.1 saved_rotated_logfile | ||
|
||
sudo systemctl stop td-agent-server | ||
# Check that SIGUSR1 is sent to Fluentd and Fluentd reopens the logfile | ||
# not to log to the rotated old file. | ||
sudo diff --report-identical-files /var/log/fluent/td-agent-server.log.1 saved_rotated_logfile | ||
|
||
# Uninstall | ||
sudo apt remove -y fluent-package | ||
(! systemctl status --no-pager td-agent-server) | ||
(! systemctl status --no-pager fluentd) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1 @@ | ||
FLUENT_PACKAGE_OPTIONS="" | ||
# The following environment variable will be modified via package maintainer's migration script | ||
FLUENT_CONF=/etc/<%= package_dir %>/<%= service_name %>.conf | ||
FLUENT_PLUGIN=/etc/<%= package_dir %>/plugin | ||
FLUENT_PACKAGE_LOG_FILE=/var/log/<%= package_dir %>/<%= service_name %>.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 0 additions & 61 deletions
61
fluent-package/yum/systemd-test/update-from-v4-logrotation-config-edited.sh
This file was deleted.
Oops, something went wrong.
114 changes: 114 additions & 0 deletions
114
fluent-package/yum/systemd-test/update-from-v4-with-old-service-file.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
#!/bin/bash | ||
|
||
set -exu | ||
|
||
. $(dirname $0)/commonvar.sh | ||
|
||
# Install v4 | ||
sudo rpm --import https://packages.treasuredata.com/GPG-KEY-td-agent | ||
case ${distribution} in | ||
amazon) | ||
cat > td.repo <<'EOF'; | ||
[treasuredata] | ||
name=TreasureData | ||
baseurl=https://packages.treasuredata.com/4/amazon/$releasever/$basearch | ||
gpgcheck=1 | ||
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent | ||
EOF | ||
sudo mv td.repo /etc/yum.repos.d/ | ||
;; | ||
*) | ||
cat > td.repo <<'EOF'; | ||
[treasuredata] | ||
name=TreasureData | ||
baseurl=https://packages.treasuredata.com/4/redhat/$releasever/$basearch | ||
gpgcheck=1 | ||
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent | ||
EOF | ||
sudo mv td.repo /etc/yum.repos.d/ | ||
;; | ||
esac | ||
sudo $DNF update -y | ||
sudo $DNF install -y td-agent-4.5.0-1.*.x86_64 | ||
|
||
# Set custom service as "td-agent-server" | ||
sudo cp /usr/lib/systemd/system/td-agent.service /etc/systemd/system/td-agent-server.service | ||
sudo cp /etc/logrotate.d/td-agent /etc/logrotate.d/td-agent-server | ||
sudo cp /etc/td-agent/td-agent.conf /etc/td-agent/td-agent-server.conf | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/etc/td-agent/td-agent.conf,/etc/td-agent/td-agent-server.conf,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/var/run/td-agent/td-agent.sock,/var/run/td-agent-server/td-agent-server.sock,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/var/log/td-agent/td-agent.log,/var/log/td-agent/td-agent-server.log,g' | ||
sudo sed -i /etc/logrotate.d/td-agent-server -e 's,/var/log/td-agent/td-agent.log,/var/log/td-agent/td-agent-server.log,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/etc/default/td-agent,/etc/default/td-agent-server,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/var/run/td-agent/td-agent.pid,/var/run/td-agent-server/td-agent-server.pid,g' | ||
sudo sed -i /etc/logrotate.d/td-agent-server -e 's,/var/run/td-agent/td-agent.pid,/var/run/td-agent-server/td-agent-server.pid,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,RuntimeDirectory=td-agent,RuntimeDirectory=td-agent-server,g' | ||
sudo systemctl daemon-reload | ||
sudo systemctl enable --now td-agent-server | ||
|
||
# Install the current | ||
sudo $DNF install -y \ | ||
/vagrant/${distribution}/${DISTRIBUTION_VERSION}/x86_64/Packages/fluent-package-[0-9]*.rpm | ||
|
||
# Manual migration | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/lib/libjemalloc.so,/opt/fluent/lib/libjemalloc.so,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/lib/ruby/gems/2.7.0/,/opt/fluent/lib/ruby/gems/3.2.0/,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/lib/ruby/gems/2.7.0/,/opt/fluent/lib/ruby/gems/3.2.0/,g' | ||
sudo sed -i /etc/systemd/system/td-agent-server.service -e 's,/opt/td-agent/bin/fluentd,/opt/fluent/bin/fluentd,g' | ||
echo "Alias=fluentd.service" | sudo tee -a /etc/systemd/system/td-agent-server.service | ||
|
||
sudo systemctl daemon-reload | ||
sudo systemctl enable --now td-agent-server | ||
|
||
# Test: service status | ||
systemctl status --no-pager td-agent-server | ||
systemctl status --no-pager fluentd | ||
|
||
# Test: config migration | ||
test -L /etc/td-agent | ||
test -e /etc/td-agent/td-agent-server.conf | ||
|
||
# Test: log file migration | ||
test -L /var/log/td-agent | ||
test -e /var/log/td-agent/td-agent-server.log | ||
|
||
# Test: bin file migration | ||
test -h /usr/sbin/td-agent | ||
test -h /usr/sbin/td-agent-gem | ||
|
||
# Test: environmental variables | ||
pid=$(eval $(systemctl show fluentd --property=MainPID) && echo $MainPID) | ||
env_vars=$(sudo sed -e 's/\x0/\n/g' /proc/$pid/environ) | ||
test $(eval $env_vars && echo $HOME) = "/var/lib/td-agent" | ||
test $(eval $env_vars && echo $LOGNAME) = "td-agent" | ||
test $(eval $env_vars && echo $USER) = "td-agent" | ||
test $(eval $env_vars && echo $FLUENT_CONF) = "/etc/td-agent/td-agent-server.conf" | ||
test $(eval $env_vars && echo $TD_AGENT_LOG_FILE) = "/var/log/td-agent/td-agent-server.log" | ||
test $(eval $env_vars && echo $FLUENT_PLUGIN) = "/etc/td-agent/plugin" | ||
test $(eval $env_vars && echo $FLUENT_SOCKET) = "/var/run/td-agent-server/td-agent-server.sock" | ||
|
||
# Test: No error logs | ||
# (v4 default config outputs 'warn' log, so we should check only 'error' and 'fatal' logs) | ||
sleep 3 | ||
(! grep -e '\[error\]' -e '\[fatal\]' /var/log/td-agent/td-agent-server.log) | ||
|
||
# Test: logrotate config migration | ||
test -e /etc/logrotate.d/td-agent-server | ||
test -e /var/log/fluent/td-agent-server.log | ||
|
||
sudo $DNF install -y logrotate # rockylinux-8 needs to install logrotate | ||
sudo logrotate -f /etc/logrotate.d/td-agent-server | ||
sleep 1 | ||
|
||
test -e /var/log/fluent/td-agent-server.log.1 | ||
sudo cp /var/log/fluent/td-agent-server.log.1 saved_rotated_logfile | ||
|
||
sudo systemctl stop td-agent-server | ||
# Check that SIGUSR1 is sent to Fluentd and Fluentd reopens the logfile | ||
# not to log to the rotated old file. | ||
sudo diff --report-identical-files /var/log/fluent/td-agent-server.log.1 saved_rotated_logfile | ||
|
||
# Uninstall | ||
sudo $DNF remove -y fluent-package | ||
(! systemctl status --no-pager td-agent-server) | ||
(! systemctl status --no-pager fluentd) |
Oops, something went wrong.