---
title: Gossによるサーバー構成のテスト
tags:  #goss #testing #golang  
author: [松尾篤](https://convert.docswell.com/user/matsuo_atsushi)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4EZG6RGXJ3.jpg?width=480
description: 2024/04/11 Go Connect #0 LT発表資料
published: April 11, 24
canonical: https://convert.docswell.com/s/matsuo_atsushi/ZP96J1-server-validation-with-goss
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4EZG6RGXJ3.jpg)

Gossによるサーバー構成のテスト
2024年4月11日
Go Connect #0 ライトニングトーク発表資料
松尾篤


# Page. 2

![Page Image](https://bcdn.docswell.com/page/Y76Y2RYPEV.jpg)

松尾 篤
@matsuo̲atsushi


# Page. 3

![Page Image](https://bcdn.docswell.com/page/G75G28GP74.jpg)

サーバーの運用管理で
必要になること
•
変化への対応
•
• ソフトウェアのバージョンアップ
セキュリティアップデート
•
継続的かつ安定したサーバー運用


# Page. 4

![Page Image](https://bcdn.docswell.com/page/9J2Y4KYZJR.jpg)

安定した運用のために
•
回避したい状況とは何かを知る
•
• その上で現在の状態を確認する
期待しているサーバー構成を定義する


# Page. 5

![Page Image](https://bcdn.docswell.com/page/DEYGMNGNEM.jpg)

手動での確認は大変
•
手動でさまざまな設定や稼働状況を確認
するのは時間と手間がかかってしまう
•
確認項目や対象バージョンが増えて、
検証すべきサーバーやエディションが
多くなってくると‥‥


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJNGWXGV78.jpg)

Goss
&quot;Goss is a YAML based Serverspec
alternative tool for validating a
server&#039;s con guration.&quot;
fi
https://github.com/goss-org/goss


# Page. 7

![Page Image](https://bcdn.docswell.com/page/YE9WX8WVE3.jpg)

Goss
•
構築済みのサーバーが意図通り設定され
•
Go製のサーバー構成テストツール
ているか検証できる
• 検証内容をYAMLで記述
Apache
License,
Version
2.0
•


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GE8N28N47D.jpg)

構成管理ツールと
併用すると効果的
•
手動で構築したサーバーだけでなく、
サーバー構成管理ツール（Terraform、
Ansible、Itamae等）を用いて構築した
サーバーを検証する用途にも使える


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LELP2RPV7R.jpg)

Why use Goss?
&quot;Goss is EASY!&quot;
&quot;Goss is FAST!&quot;
&quot;Goss is SMALL!&quot;


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4JM48R4N7W.jpg)

インストール方法
• Linuxにおいて手動でインストールする場合
$ VERSION=v0.4.6
$ sudo curl -L &quot;https://github.com/
goss-org/goss/releases/download/$
{VERSION}/goss-linux-amd64&quot; -o /usr/
local/bin/goss
$ sudo chmod +rx /usr/local/bin/goss


# Page. 11

![Page Image](https://bcdn.docswell.com/page/PJRW5RW479.jpg)

記述例
service:
sshd:
enabled: true
running: true
process:
sshd:
running: true


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PEXPKRPZ7X.jpg)

記述例
command:
{{if .Env.OS | regexMatch &quot;(darwin|linux)&quot;}}
print-version:
exec: &quot;./fmcsadmin -v&quot;
exit-status: 0
stdout:
- &quot;2.2.0-dev&quot;
{{end}}


# Page. 13

![Page Image](https://bcdn.docswell.com/page/3EKD5RDVJD.jpg)

Quick start
$ sudo goss autoadd sshd
$ goss validate


# Page. 14

![Page Image](https://bcdn.docswell.com/page/L73RK8PQJ5.jpg)

Demo


# Page. 15

![Page Image](https://bcdn.docswell.com/page/87DY3MLW7G.jpg)

YAMLファイルを生成可能
&quot;It eases the process of writing tests
by allowing the user to generate
tests from the current system
state.&quot;


# Page. 16

![Page Image](https://bcdn.docswell.com/page/VJP64R2XE8.jpg)

制限事項
&quot;goss works well on Linux, but
support on Windows &amp; macOS is
alpha.&quot;


# Page. 17

![Page Image](https://bcdn.docswell.com/page/2EV3XRD37Q.jpg)

関連リンク
• Goss
https://github.com/goss-org/goss


