管理パネル(PHP)からansibleサーバーにコマンドを投げて、ansibleコマンドを走らせたかった。
phpからsshで別サーバーにコマンドを実行させる
phpで適当にインフォメーションを作成して、それをもとにコマンドを生成し
生成したコマンドをansibleサーバーで実行する。
最初は
$command = "ssh 192.168.xxx.xxx {コマンド}";
exec($command, $out, $return_ver);
var_dump($out);
こんな感じで行けるかな?と思いつつ実装and実行
どうやらapacheに権限がなくてsshでキー認証ができなくてダメ
じゃあ「sudo」つけたらええんかな?
$command = "sudo ssh 192.168.xxx.xxx {コマンド}";
exec($command, $out, $return_ver);
var_dump($out);
なんかsudoつかうなや的なエラー、、、
結局ssh2を使いました
[ssh2のextensionをphp7にインストールする方法
- Qiitassh2 extensionを PHP7にインストールした手順です。 必要ライブラリ すでにこの辺のライブラリがある場合は重複ですが yum
install make gcc glibc-devel zlib-devel
op…
qiita.com](https://web.archive.org/web/20200925222430/https://qiita.com/bohebohechan/items/50f1546a20c9dde7efcb “ssh2のextensionをphp7にインストールする方法 - Qiita”)
インストールが必要orz
$command = "{コマンド}";
$conn = ssh2_connect("192.168.xxx.xxx", {ポート});
ssh2_auth_pubkey_file(
$conn,
'{ユーザー名}',
'id_rsa.pub',
'id_rsa'
);
//コマンドを実行して配列に代入
$output = ssh2_exec($conn, "$command");
最終こんな感じになった、、、
これで半日とられました。