phpでsshコマンドをたたいてansibleコマンドを実行させた
- POSTS
- 74 Words
管理パネル(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"); 最終こんな感じになった、、、