-
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.
Signed-off-by: Daijiro Fukuda <fukuda@clear-code.com>
- Loading branch information
Showing
7 changed files
with
234 additions
and
54 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
This file was deleted.
Oops, something went wrong.
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,31 @@ | ||
#!/bin/bash | ||
|
||
distribution=$(cat /etc/system-release-cpe | awk '{print substr($0, index($1, "o"))}' | cut -d: -f2) | ||
version=$(cat /etc/system-release-cpe | awk '{print substr($0, index($1, "o"))}' | cut -d: -f4) | ||
|
||
case $distribution in | ||
amazon) | ||
case $version in | ||
2) | ||
DNF=yum | ||
DISTRIBUTION_VERSION=$version | ||
;; | ||
2023) | ||
DNF=dnf | ||
DISTRIBUTION_VERSION=$version | ||
;; | ||
esac | ||
;; | ||
centos) | ||
case $version in | ||
7) | ||
DNF=yum | ||
DISTRIBUTION_VERSION=$version | ||
;; | ||
esac | ||
;; | ||
rocky|almalinux) | ||
DNF=dnf | ||
DISTRIBUTION_VERSION=$(echo $version | cut -d. -f1) | ||
;; | ||
esac |
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,25 @@ | ||
#!/bin/bash | ||
|
||
set -exu | ||
|
||
. $(dirname $0)/commonvar.sh | ||
|
||
sudo $DNF install -y \ | ||
/vagrant/${distribution}/${DISTRIBUTION_VERSION}/x86_64/Packages/fluent-package-[0-9]*.rpm | ||
|
||
! systemctl status --no-pager fluentd | ||
sudo systemctl enable --now fluentd | ||
systemctl status --no-pager fluentd | ||
|
||
sleep 3 | ||
! grep -q -e '\[warn\]' -e '\[error\]' -e '\[fatal\]' /var/log/fluent/fluentd.log | ||
|
||
sudo $DNF remove -y fluent-package | ||
sudo systemctl daemon-reload | ||
|
||
# `sudo systemctl daemon-reload` clears the service completely. | ||
# (The result of `systemctl status` will be `unfound`) | ||
# Note: RPM does not leave links like `@/etc/systemd/system/fluentd.service`. | ||
# (Different from deb) | ||
|
||
! 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
#!/bin/bash | ||
|
||
if [ -z $1 ]; then | ||
echo "Error: Need to specify VM name in the Vagrantfile." | ||
echo "Ex.) $ ./test.sh almalinux-9" | ||
exit 1 | ||
fi | ||
|
||
vm=$1 | ||
dir="/vagrant/fluent-package/yum/systemd-test" | ||
|
||
vagrant status $vm | grep -E "^${vm}\s+not created (.*)$" | ||
if [ $? -ne 0 ]; then | ||
echo "Error: The VM already exists. Need to destroy it in advance with the following command." | ||
echo "$ vagrant destroy $vm" | ||
exit 1 | ||
fi | ||
|
||
set -eu | ||
|
||
test_filenames=( | ||
install-newly.sh | ||
update-from-v4.sh | ||
) | ||
|
||
for test_filename in ${test_filenames[@]}; do | ||
echo -e "\nRun test: $test_filename\n" | ||
vagrant up $vm | ||
vagrant ssh $vm -- $dir/$test_filename | ||
vagrant destroy -f $vm | ||
# I want to use snapshot instead of destroying it for every test, | ||
# but somehow, it will be often an error on GitHub Actions... | ||
# $ vagrant snapshot save -f $vm after-setup | ||
# (execute a test) | ||
# $ vagrant snapshot restore $vm after-setup | ||
done | ||
|
||
echo -e "\nAll Success!\n" |
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,79 @@ | ||
#!/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 | ||
|
||
sudo systemctl enable --now td-agent | ||
systemctl status --no-pager td-agent | ||
|
||
# Install the current | ||
sudo $DNF install -y \ | ||
/vagrant/${distribution}/${DISTRIBUTION_VERSION}/x86_64/Packages/fluent-package-[0-9]*.rpm | ||
|
||
# Test: service status | ||
sudo systemctl enable --now fluentd | ||
systemctl status --no-pager fluentd | ||
systemctl status --no-pager td-agent | ||
|
||
# Test: config migration | ||
test -L /etc/td-agent | ||
test -e /etc/td-agent/td-agent.conf | ||
|
||
# Test: log file migration | ||
test -L /var/log/td-agent | ||
test -e /var/log/td-agent/td-agent.log | ||
|
||
# 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/fluent" | ||
test $(eval $env_vars && echo $LOGNAME) = "fluentd" | ||
test $(eval $env_vars && echo $USER) = "fluentd" | ||
test $(eval $env_vars && echo $FLUENT_CONF) = "/etc/fluent/td-agent.conf" | ||
test $(eval $env_vars && echo $FLUENT_PACKAGE_LOG_FILE) = "/var/log/fluent/td-agent.log" | ||
test $(eval $env_vars && echo $FLUENT_PLUGIN) = "/etc/fluent/plugin" | ||
test $(eval $env_vars && echo $FLUENT_SOCKET) = "/var/run/fluent/fluentd.sock" | ||
|
||
# Test: logs | ||
sleep 3 | ||
! grep -q -e '\[warn\]' -e '\[error\]' -e '\[fatal\]' /var/log/fluent/td-agent.log | ||
|
||
# Uninstall | ||
sudo $DNF remove -y fluent-package | ||
sudo systemctl daemon-reload | ||
|
||
# `sudo systemctl daemon-reload` clears the service completely. | ||
# (The result of `systemctl status` will be `unfound`) | ||
# Note: RPM does not leave links like `@/etc/systemd/system/fluentd.service`. | ||
# (Different from deb) | ||
|
||
! systemctl status --no-pager td-agent | ||
! 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
#!/bin/bash | ||
|
||
set -exu | ||
|
||
. $(dirname $0)/commonvar.sh | ||
|
||
# Install the current | ||
package="/vagrant/${distribution}/${DISTRIBUTION_VERSION}/x86_64/Packages/fluent-package-[0-9]*.rpm" | ||
sudo $DNF install -y $package | ||
sudo systemctl enable --now fluentd | ||
systemctl status --no-pager fluentd | ||
|
||
# Make a dummy pacakge for the next version | ||
sudo $DNF install -y epel-release | ||
sudo $DNF install -y rpmrebuild | ||
# Example: "Release : 1.el9" | ||
release_line=$(rpm -qip $package | grep "Release*:*") | ||
# Example: "1" | ||
release_ver=$(echo $release_line | sed -E "s/.*([0-9]+)\.(.+)/\1/g") | ||
# Example: "2.el9" | ||
next_release=$(echo $release_line | sed -E "s/.*([0-9]+)\.(.+)/$(($release_ver+1)).\2/g") | ||
rpmrebuild --release=$next_release --package $package | ||
next_package=$(find rpmbuild -name "*.rpm") | ||
|
||
# Install the dummy package of the next version | ||
sudo $DNF install -y ./$next_package | ||
sudo systemctl enable --now fluentd | ||
systemctl status --no-pager fluentd | ||
|
||
# Test: migration process from v4 must not be done | ||
! test -e /etc/td-agent | ||
! test -e /etc/fluent/td-agent.conf | ||
! test -e /var/log/td-agent | ||
! test -e /var/log/fluent/td-agent.log | ||
|
||
# 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/fluent" | ||
test $(eval $env_vars && echo $LOGNAME) = "fluentd" | ||
test $(eval $env_vars && echo $USER) = "fluentd" | ||
test $(eval $env_vars && echo $FLUENT_CONF) = "/etc/fluent/fluentd.conf" | ||
test $(eval $env_vars && echo $FLUENT_PACKAGE_LOG_FILE) = "/var/log/fluent/fluentd.log" | ||
test $(eval $env_vars && echo $FLUENT_PLUGIN) = "/etc/fluent/plugin" | ||
test $(eval $env_vars && echo $FLUENT_SOCKET) = "/var/run/fluent/fluentd.sock" | ||
|
||
# Test: logs | ||
sleep 3 | ||
! grep -q -e '\[warn\]' -e '\[error\]' -e '\[fatal\]' /var/log/fluent/fluentd.log | ||
|
||
# Uninstall | ||
sudo apt remove -y fluent-package | ||
sudo systemctl daemon-reload | ||
|
||
# `sudo systemctl daemon-reload` clears the service completely. | ||
# (The result of `systemctl status` will be `unfound`) | ||
# Note: RPM does not leave links like `@/etc/systemd/system/fluentd.service`. | ||
# (Different from deb) | ||
|
||
! systemctl status --no-pager fluentd |