管理パネル(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を使いました

[![](https://web.archive.org/web/20200925222430im_/https://i0.wp.com/qiita- user- contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle- ogp- background-1150d8b18a7c15795b701a55ae908f94.png?resize=160%2C90&ssl=1)![](https://web.archive.org/web/20200925222430im_/https://i0.wp.com/qiita- user- contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle- ogp- background-1150d8b18a7c15795b701a55ae908f94.png?resize=160%2C90&ssl=1)ssh2のextensionをphp7にインストールする方法

インストールが必要orz

$command = "{コマンド}";
 
$conn = ssh2_connect("192.168.xxx.xxx", {ポート});
    ssh2_auth_pubkey_file(
        $conn,
        '{ユーザー名}',
        'id_rsa.pub',
        'id_rsa'
    );

    //コマンドを実行して配列に代入
    $output = ssh2_exec($conn, "$command");

最終こんな感じになった、、、

これで半日とられました。