Azure Linux Extensions:Linux用カスタムスクリプト

あなたはおそらく、Azureで利用可能ないくつかの拡張を見てきました。それらのいくつかはここにリストされ/文書化されています: 
Azure Linux拡張機能

この記事では、「Linux用カスタムスクリプト」拡張機能で使用できるいくつかの例について説明します。

この拡張機能は基本的にLinux VM内でスクリプトを実行できるようにするため、Linuxエージェント(WAAGENT)が正常に機能している限り問題なくこの拡張機能を使用できるはずです。

この拡張機能はポータルから実行できます。そのため、Azure Resource Manager(ARM)VMでは、次の項目をクリックしてアクセスできます。

VM名>拡張機能>追加>「Linux用カスタムスクリプト」を選択>作成 screen-shot-2017-02-12-at-4-44-18-pm

その後、実行したいスクリプトをアップロードし、 "Command"行を適切なものに変更してそのファイルを実行するだけでよいので、この場合はadduser.shというbashスクリプトを作成していますコマンドラインは次のスクリーンショットのようにbash adduser.shに変更されます: screen-shot-2017-02-12-at-1-37-27-pm

OK] をクリックすると、Linux VM内でスクリプトのデプロイと実行が開始されます。

ほとんどの場合、Linuxのシェルスクリプトに精通している必要があります。また、スクリプトを実行する前に広範にテストすることを強くお勧めします。プロンプトや質問を処理するスクリプトを作成することに留意してください。それが実行されている間にアクセスします。

いくつかの簡単な例として、これらの問題のいずれかに対処したいとします。 
1)VMへのアクセスをブロックしているUbuntu Linux VM上でUFWファイアウォールを無効にする 
2)特定のVMにログインすることを許可していないSSHホスト鍵に対する誤った許可を修正する 
3)ポータルを使用しているときにVMに新しいアカウントを手動で追加することが何らかの理由で正しく機能しない

1)Ubuntu Linux VM上でUFWファイアウォールを無効にする

"disableufw.sh"と呼ばれる空のテキストファイルを作成し、次の行を追加します。

#!/ bin / bash 
ufwを無効にする 
ロガー "カスタムスクリプトによって無効にされたufw"

このスクリプトは基本的にufw disableコマンドを実行し、Ubuntuファイアウォールを無効にし、loggerコマンドを使用してシステムログに "ufwがカスタムスクリプトによって無効になっている"というメッセージを記録します。

2)SSHホスト鍵ファイルの誤った許可を修正する

空のテキストファイル "fixsshkeys.sh"を作成し、次の行を追加します。

#!/ bin / bash chmod 640 / etc / ssh / ssh_host_ecdsa_key ssh_host_ed25519_key chmod 644 /etc/ssh/ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub chmod 600 / etc / ssh / ssh_host_rsa_key ロガー "SSH鍵のアクセス権を正常にリセット"

このスクリプトは、上記の指定されたファイルに対するファイルのパーミッションをデフォルトにリセットします。

3)sudoアクセスとSSH鍵で新しいアカウントを手動で追加する。

空のテキストファイル "adduser.sh"を作成し、次の行を追加します。

CentOS / RHELおよびOracleディストリビューションの場合

#!/ bin / bash 
#ユーザ名が小文字であることを確認してください。  
USERNAME = " レスキュー "

#提供された名前を使用してユーザーアカウントを作成します 
useradd -m $ USERNAME 
ロガー "Azureカスタムスクリプト - $ USERNAMEを追加"

#ユーザ用のSSH設定フォルダを作成します。  
mkdir -p /home/$USERNAME/.ssh 
logger "Azureカスタムスクリプト - SSH設定フォルダの作成"

#指定されたユーザのauthorized_keysファイルにSSH鍵データを追加する。  
#コンテンツ "SSH-PUBLIC-KEY"をユーザの公開鍵で置き換えます 
echo " SSH-PUBLIC-KEY " >> /home/$USERNAME/.ssh/authorized_keys 
logger "Azureカスタムスクリプト - ユーザー$ USERNAMEのSSHキーの追加"

#sudoersにユーザアカウントを追加する 
echo "$ USERNAME ALL =(ALL)ALL"> /etc/sudoers.d/$USERNAME

SUSEディストリビューションの場合 
#!/ bin / bash 
#あなたの望むパスワードを入力します。#小文字のユーザ名を使用していることを確認します。  USERNAME = " レスキュー "

#提供された名前を使用してユーザーアカウントを作成します 
useradd -m $ USERNAME -G users 
ロガー "Azureカスタムスクリプト - $ USERNAMEを追加"  

#ユーザ用のSSH設定フォルダを作成します。  
mkdir -p /home/$USERNAME/.ssh 
logger "Azureカスタムスクリプト - SSH設定フォルダの作成"  

#与えられたユーザのauthorized_keysファイルへのSSH鍵データの追加 
#コンテンツ "SSH-PUBLIC-KEY"をユーザの公開鍵で置き換えます 
echo " SSH-PUBLIC-KEY " >> /home/$USERNAME/.ssh/authorized_keys 
logger "Azureカスタムスクリプト - ユーザー$ USERNAMEのSSHキーの追加"

#sudoersにユーザアカウントを追加する echo "$ USERNAME ALL =(ALL)NOPASSWD:ALL"> /etc/sudoers.d/$USERNAME logger "Azureカスタムスクリプト - $ USERNAME sudoersファイルの作成"

Ubuntu / Debianディストリビューションの場合

#!/ bin / bash 
#ユーザ名が小文字であることを確認してください。  
USERNAME = " レスキュー "

#提供された名前を使用してユーザーアカウントを作成します 
useradd -m -G sudo $ USERNAME 
ロガー "Azureカスタムスクリプト - $ USERNAMEを追加"

#ユーザ用のSSH設定フォルダを作成します。  
mkdir -p /home/$USERNAME/.ssh 
logger "Azureカスタムスクリプト - SSH設定フォルダの作成"

#指定されたユーザのauthorized_keysファイルにSSH鍵データを追加する。  
#コンテンツ "SSH-PUBLIC-KEY"をユーザの公開鍵で置き換えます 
echo " SSH-PUBLIC-KEY " >> /home/$USERNAME/.ssh/authorized_keys 
logger "Azureカスタムスクリプト - ユーザー$ USERNAMEのSSHキーの追加"

上記のスクリプトは基本的に "rescue"という名前のアカウントを作成し、ログインに追加されたSSH公開鍵を使用します。 "SSH-PUBLIC-KEY"フィールドをSSH公開鍵の内容に置き換えてください。

Azure PowerShellやAzure CLIなどの拡張機能やその他の実行方法についての詳細は、次のページを参照してください。

Linux用カスタムスクリプト