ビルマネージャー。 シェルスクリプトを使用すると、何でも販売できます





今日、ほとんどのプロバイダーは、標準のホスティングサービス、ドメイン、SSLに加えて、さまざまな「非ホスティング」サービスを提供しています。 たとえば、VPNまたはストリーミング。 問題は、BILLmanagerでクライアントの接続を整理する方法ですか? 手動でアクセスできますが、ブレークスルーを接続するためのアプリケーションがある場合はどうでしょうか? もちろん、プロセスを自動化してください! 最近、BILLmanagerにセールスオートメーションの別のソリューションが登場しました。それについてお話ししたいと思います。



この記事では、独自のシェルスクリプトを使用して、課金プラットフォームでの非標準サービスの販売を構成する方法について説明します。



おそらく、経験豊富なユーザーには「BILLmanagerには追加のモジュールがあるのに、なぜシェルスクリプトがあるのか​​」という質問があります。実際、スクリプトの方が簡単です。プログラマーは必要ありません。 知識のあるBASHシステム管理者で十分です。



だから、考えてみましょう:どのサービスがスクリプトを書く必要があるか。 オフハンドにはいくつかのオプションがあります。アクティベーションキーを特定のソフトウェアに販売する、バックアップを保存するためのFTPサーバーにスペースを提供する、ストリーミング、 ブルーベリーマフィンとスムージーの取引があります 。 もちろん、リストは続きます。想像力によってのみ制限されます。



いくつかの貴重なコンテンツを含むftpサーバーへのアクセスを販売する例を考えてみましょう。 定期的に更新されるエリアのベクトルマップにします。



技術的な要件を確認してください。 ドキュメントによると、4つのスクリプトが必要です:アクセスの注文、一時停止、再開、および終了。



自動生成されたユーザー名とパスワードは最初のスクリプト(open.sh)に転送され、スクリプトが機能するために必要ないくつかの追加パラメーターも転送できます。 出力は、「OK」で始まり、パラメータ「--id」を含む行である必要があります。作成されたサービスの一意の識別子です。 追加のパラメーターを返すこともできます。 たとえば、サービスを注文したユーザーに表示するftpサーバーへのリンク。



残りのスクリプト(suspend.sh、resume.sh、close.sh)には、作成されたサービスの一意の識別子(--id)が与えられ、出力には文字列「OK」が含まれます。



それでは始めましょう。 この場合、ファイルサーバーはProFTPDになります。



クライアントがカードにアクセスできるようにするには、ユーザーを作成してパスワードを割り当てる必要があります。 これを行うには、BILLmanagerが自動的に生成するパラメーターを使用します。この方法では、ユーザー名が一意に作成されるため、サービスIDも取得します。 パラメータ文字列から値を取得し、useraddを呼び出してから、passwdを使用してパスワードを割り当てます。 この情報をクライアントに転送するために、「OK」、識別子、およびサーバー上の承認用データを返すことは残っています。



結果:open.sh
#!/bin/bash for i do if [ ${i:0:6} = "--user" ] then username=${i:7} elif [ ${i:0:10} = "--password" ] then password=${i:11} fi done useradd $username -d /home/ftp_folder -m -s /bin/false echo $password | passwd --stdin $username > /dev/null echo "OK --id=$username --username=$username --password=$password"
      
      







サービスは接続されています。 クライアントのアカウントの残高がなくなった場合にアクセスを一時停止するメカニズムを作成します。 受信したIDを使用して、usermodを呼び出し、ホームディレクトリを/ dev / nullに変更します。



結果:suspend.sh
 #!/bin/bash for i do string=${i} if [ ${string:0:4} = "--id" ] then username=${string:5} fi done usermod -d /dev/null $username echo "OK"
      
      







支払いを受け取ったら、カードを受け取る機会を返さなければなりません。 再びusermodを「呼び出し」て、すべてをそのまま返します。



結果:resume.sh
 #!/bin/bash for i do string=${i} if [ ${string:0:4} = "--id" ] then username=${string:5} fi done usermod -d /home/ftp_folder $username echo "OK"
      
      







最後に、何らかの理由でサービスの提供が計画されていない場合は、ユーザーを削除する必要があります。 同じ識別子を使用して、userdelを実行します。



結果:close.sh
 #!/bin/bash for i do string=${i} if [ ${string:0:4} = "--id" ] then username=${string:5} fi done userdel $username echo "OK"
      
      







以上で、コードの作成は完了です。 実装されたスクリプトを、カードが配られるマシン上の別のディレクトリにコピーし、「chmod + x」を使用します。 さらに、/ etc / passwdでftpサーバーが「見ている」ことを確認する必要があります。 etc / proftpd.confファイルのAuthOrder行がこれを担当します。 すべてが機能するには、mod_auth_unix.cが含まれている必要があります。



次に、BILLmanagerで設定を行います。 新しいタイプの製品を作成してから、このタイプの料金プランを作成する必要があります。 その後、処理モジュールとしてShellscriptsを選択し、インストールが完了するまで待ちます。 データセンターの作成要求がある場合は、作成します。 次の段階で、ftpサーバーのIPアドレスを指定し、認証データとスクリプトフォルダーへのパスを入力します。 「次へ」をクリックした後、ハンドラーの任意の名前を入力します。 次に、製品のタイプを再度選択し、名前、プロセッサー、価格を指定します。 open.shスクリプトから渡される追加のパラメーターを識別するために残っています。 製品タイプで、新しく作成したタイプを選択し、「パラメーター」、「作成」をクリックします。 open.shスクリプトに従って2つのパラメーターを作成し、それらの「表示時に開く」ボックスをオンにし、「変更のためのアクセス」ドロップダウンリストで「従業員」を選択します。



設定が完了し、サービスをクライアントに接続できるようになりました。



そのため、シェルスクリプトのトピックが明らかになりました。 私たちはあなたの質問に喜んでお答えします。また、記事に関するフィードバックに感謝します。 サービスの開発に頑張ってください!



PS BILLmanagerがインストールされていない場合にインストールする場合は、展開手順をこちらで確認できます



All Articles