ansibleでフィンガープリントを表示させない方法

March 12,2024 11:55 PM
Category:[ansible]
Tag:[ansible]
Permalink

ansibleでフィンガープリントを表示させない方法を紹介します。

1.問題点

ansibleでログイン経験がないサーバにログインをすると、下記のような「フィンガープリント」が表示されます。

The authenticity of host '[127.0.0.1]:22 ([127.0.0.1]:22)' can't be established.
RSA key fingerprint is SHA256:1pOx1qnpCf9UfJQPVaMRfJV/6LZkHWQXljHwwYGlN1g.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

ansible実行時にフィンガープリントを表示させないのですが、方法がわかりません。

ということで、ansibleでフィンガープリントを表示させない方法を紹介します。

2.ansibleでフィンガープリントを表示させない

ansibleでフィンガープリントを表示させないようにするには、ansible.cfgに下記の設定を追加します。

[ssh_connection]
ssh_args = '-o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'

オプションの意味は次の通りです。

  • ControlMaster=auto:sshのセッションが存在するときにそのセッションを再利用する仕組み
  • ControlPersist=60s:ControlMasterをバックグランドにまわしてくれる機能
  • StrictHostKeyChecking=no:ホストの~/.ssh/known_hostsに存在しないときに確認なしに接続し、フィンガープリントは確認なしにknown_hostsに記録されます
  • UserKnownHostsFile=/dev/null:ホストの~/.ssh/known_hostsを常に空(/dev/null)にすることで、サーバ交換等でフィンガープリントが変わったときにエラーとなってしまうのを回避します
Comments [0] | Trackbacks [0]

FFmpegをWindowsにインストールする方法

February 29,2024 12:03 AM
Category:[Windows]
Tag:[FFmpeg, Windows]
Permalink

FFmpegをWindowsにインストールする方法を紹介します。

1.はじめに

Windows端末で「ScreenToGif」という、デスクトップキャプチャで取得した動画をMP4で保存しようとしたら、「FFmpegのパスが通っていません」と警告が表示されました。

FFmpeg自体インストールした記憶がないので、本記事でFFmpegをWindowsにインストールする方法を紹介します。

ちなみに、FFmpegはオープンソースのマルチメディアフレームワークで、主にコマンドラインツールとして動作し、多くの音声・動画フォーマットに対応した、ストリームの保存や変換が可能です。

2.FFmpegのダウンロード

FFmpegのページにアクセスして「Download」をクリック。

(クリックで拡大、以下同様)

Windowsのアイコンをクリック。

「Windows builds by BtbN」をクリック。

「ffmpeg-master-latest-win64-gpl.zip」をクリック。

ダウンロードしたアーカイブを展開し、ここでは

C:\Program Files (x86)\ffmpeg

となるように配置します。

2.パスを通す。

タスクバーの検索フィールドに「システムの詳細設定」を入力して、「システムの詳細設定の表示」をクリック。

「環境変数」をクリック。

「xxのユーザー環境変数」の「Path」を選択した状態で「編集」をクリック。

「新規」をクリック。

今回は下記のパスを追加して「OK」をクリック。

C:\Program Files (x86)\ffmpeg\bin

前の画面も「OK」をクリックして、すべて閉じます。

3.動作確認

コマンドプロンプトを開いて、下記のコマンドを実行。

ffmpeg -version

パスが正常に通っていれば、下記のメッセージが表示されます。

これでFFmpegのインストール完了です。

Comments [0] | Trackbacks [0]

シェルスクリプトのexpectで応答メッセージを振り分ける方法

February 13,2024 11:55 PM
Category:[bash]
Tag:[bash, expect]
Permalink

シェルスクリプトのexpectで確認メッセージを振り分ける方法を紹介します。

1.問題点

シェルスクリプトを使ってパスワード入力が必要なコマンド(scp)を実行するためにexpectを使っています(下記)。

#!/bin/bash
 
expect -c "
spawn scp /home/foo/abc.txt foo@172.16.5.10:/home/foo
expect \"Are you sure you want to continue connecting (yes/no)?\"
send \"yes\n\"
expect \"password:\"
send \"hoge\n\"
interact
"

ですが、確認メッセージが2パターンあり、それらを振り分ける方法がわかりません。

具体的には、

% scp /home/foo/abc.txt foo@172.16.5.10:/home/foo

というコマンドを実行すると、初回は、

Are you sure you want to continue connecting (yes/no)?

と聞かれて、そのあと

password:

を聞かれるのですが、2回目以降は、

password:

しか聞かれません。

ということで、シェルスクリプトのexpectで確認メッセージを振り分ける方法を紹介します。

2.シェルスクリプトのexpectで確認メッセージを振り分ける

確認メッセージを振り分けるには、次のように書き換えます。

#!/bin/bash
 
expect -c "
spawn scp /home/foo/abc.txt foo@172.16.5.10:/home/foo
expect {
  \"Are you sure you want to continue connecting (yes/no)?\" {
    send \"yes\n\"
    expect \"password:\"
    send \"hoge\n\"
  } \"password:\" {
    send \"hoge\n\"
  }
}
interact
"

具体的には、expect節で全体を括り、その中にifのthen節とelse節のように確認メッセージを分けて記述します。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages