0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linode StackScriptsとは何か

Last updated at Posted at 2022-08-08

Linodeとは

Linode (https://www.linode.com/) は Akamaiが提供するIaaS (Infrastructure as a Service) プラットフォームプロバイダーのサービスです。リノードと発音します。
Akamaiは2022年2月にLinode社の買収を発表しました。
https://www.akamai.com/ja/newsroom/press-release/akamai-to-acquire-linode
クラウドコンピューティングをよりシンプルに、手頃な価格で、誰もが利用できるようにすることで、イノベーションを加速することができます。
https://www.linode.com/ja/alternative-cloud-provider/

StackScriptsとは

StackScriptsは、Linodeインスタンスが初回構成時に実行できるスクリプトです。
このスクリプトはカスタマイズ可能で、好みの言語で記述を行うことができます。
例えば、インスタンスの構築時に用いることで、Webサーバーのプロビジョニングを自動化することも可能です。

やってみて覚えるStackScripts

今回はこちらのチュートリアルを参考に、実際に触りつつStackScriptsを理解していきます。

まずはLinodeのコンソールからStackScriptsを選択し、Createボタンから作成を行います。

image.png

サンプルコードとしてこちらを利用します。
Bashにて実行するスクリプトで、PHPのインストールを行うものです。
条件分岐にてaptを利用できるかの確認をしています。

#!/bin/bash

if [ -f /etc/apt/sources.list ]; then
   apt update
   apt -y install php
else
   echo "Your distribution is not supported by this StackScript"
   exit
fi

このサンプルコードをコピーして実際にStackScriptsを作成してみます。

image.png

作成されたスクリプトを選択し、コードを確認します。

image.png

Deploy New Linodeからこのコードを利用してインスタンスを作成することができますので、作成して動作を確認してみます。

image.png

サーバーにログインし、PHPがインストールされていることを確認します。

root@localhost:~# php -v
PHP 8.1.2 (cli) (built: Jun 13 2022 13:52:54) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

このようにインスタンスの構成時にコマンドを実行できることにより、構築の自動化が行えるのがStackScriptsです。

StackScripts応用編:ユーザー定義フィールド(UDF)

ユーザー定義フィールド(UDF)は、StackScripts利用時にユーザーが任意の値を入力できる項目です。

例えば先程のStackScriptで任意のパッケージをインストールさせたい場合はこのような書き方になります。

#!/bin/bash

# <UDF name="PACKAGE" label="package" default="php" example="php" />

if [ -f /etc/apt/sources.list ]; then
   apt update
   apt -y install $PACKAGE
else
   echo "Your distribution is not supported by this StackScript"
   exit
fi

ユーザー定義フィールド(UDF)の各項目の説明はこちらです。

label Description
name StackScript内で使用する変数名です。
label Linodeのコンソールでユーザーに表示するラベルです。(日本語不可)
default デフォルトの入力値です。
example ユーザーに表示する入力例です。

こちらのスクリプトを利用してインスタンスを作成すると、以下のように入力フォームが用意され、任意の値を設定できるようになります。

image.png

StackScripts応用編:他の言語を利用したい

Bashではなく他の言語を利用したい場合には、ssincludeを利用すると他のStackScriptsを呼び出すことができます。
この場合、StackScriptID=1111はPythonで記載されているスクリプトとなり、pythonのコマンドで実行することによって自動化が可能となります。

#!/bin/bash
sudo apt install -y python3
source <ssinclude StackScriptID=1111> 
python3 /root/ssinclude-1111

まとめ

StackScriptsは簡単にスクリプトを記述できるだけなく、利用料金もかかりません。
ぜひ、インスタンスの構築自動化にStackScriptsを活用してみてください。

関連記事

アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?