আইআইএস 7 - ওয়েব ডিপ্লোয়মেন্ট সরঞ্জাম - সেটআপারাম / সেটপারামফাইলে HTTP এবং https বাইন্ডিং + সার্ট সেট করতে


8

আমরা বর্তমানে একটি লাইভ ওয়েবসাইট এবং কয়েকটি ওয়েব সার্ভিসকে একটি স্টেজিং বক্স থেকে দুটি লাইভ সার্ভারে সিঙ্ক করতে এমএস ওয়েব ডিপ্লোয়মেন্ট সরঞ্জামটি ব্যবহার করছি ।

স্টেজিং বাক্সটি 17000 পোর্টে যে কোনও আইপিতে সাইটটি হোস্ট করে, যেখানে দুটি লাইভ সার্ভার লোড-ভারসাম্যযুক্ত এবং তাদের প্রত্যেকটির জন্য আলাদা আইপি রয়েছে।

বর্তমানে স্থাপনার জন্য আমি দুটি পৃথক প্যাকেজ উত্পন্ন করি - প্রতিটি মেশিনের জন্য একটি - সিঙ্ক ক্রিয়াকলাপটি ব্যবহার করে এবং একটি ডেস্টিনেশনবাইন্ডিং প্যারামিটার নীচে উল্লেখ করে:

msdeploy -verb:sync 
  -source:WebServer,computerName=localhost
  -dest:package="machinename.zip"
  -setParam:type="DestinationBinding",scope="SiteName",value="ip_address:port:".

(পড়া সহজ করে তুলতে একাধিক লাইনে বিভক্ত করুন!)

আমি দুটিবার মেশিনের প্রতিটিটির জন্য আলাদা টার্গেট ফাইল নাম এবং আইপি ঠিকানা দিয়ে এটিকে দু'বার চালিত করি। যখন এটি স্থাপনার কথা আসে, আমি কেবল প্রতিটি প্যাকেজ থেকে স্ব স্ব লাইভ সাইটে একটি সিঙ্ক করি।

আমি জানি, আমি জানি - একটি প্যারামিটারাইজড প্যাকেজ তৈরি করে এবং তারপর সম্ভবত দুটি সার্ভারের জন্য সেটপারামফায়াল স্যুইচটি ব্যবহার করে আমার তা করা সম্ভব হবে - বিশ্বাস করুন আমি চাই, তবে এটি করার ডকুমেন্টেশনটি স্পষ্টত অ- অস্তিত্ব।

এখন আমার এই সাইটের জন্য এইচটিটিপি এবং এইচটিটিপিএস উভয়কেই কনফিগার করতে এবং স্থাপন করতে হবে; এসএসএল সার্টও ব্যবহার করতে হবে to

আমি স্টেজিং বাক্সে সাইটের জন্য একটি এসএসএল বাইন্ডিং যুক্ত করেছি - যা বিকাশ শংসাপত্র ব্যবহার করে (যা প্রতিস্থাপন করা দরকার - বা স্টেজিং বাক্সটি লাইভ সার্ট ব্যবহার করা উচিত?), এবং এখন উপরের কমান্ড লাইনের প্রভাব রয়েছে উভয় HTTP এবং https এন্ট্রি লক্ষ্য আইপি প্রতিস্থাপন।

দেখা যাচ্ছে যে আমি একাধিক বাইন্ডিং প্লাস্টিকের উপরের -setParam এ গন্তব্যবিন্যাস মানতে শংসাপত্রের তথ্য নির্দিষ্ট করতে পারি না, তাই যে কেউ জানেন যে আমি কীভাবে এটি করব?

যে কোনও সহায়তা প্রশংসিত


1
সম্ভবত আপনি একটি ট্যাগ হিসাবে এমএসডিপ্লি যোগ করা উচিত। স্ট্যাকওভারফ্লো
ডটকমের

এখন একটি ভাল পয়েন্ট আছে :)
আন্দ্রেস জোল্টান

হ্যাঁ - আমি প্রথমে স্ট্যাকওভারফ্লো সম্পর্কে ভেবেছিলাম; টের পেয়েছেন যে এমএসডিপ্লাইয়ের নিম্ন-স্তরের অপ্সগুলি বিকাশকারীদের তুলনায় প্রযুক্তি সমর্থন / অ্যাডমিনদের ব্যবহারের সম্ভাবনা বেশি। আমি যদি কোথাও না পাই তবে সম্ভবত আপনি এই প্রশ্নটি অবসর নেবেন এবং আপনার পরামর্শ অনুসারে সেখানে পোস্ট করব। সর্বদা তর্ক করতে পারে যে আমি বিকাশকারী, এবং বিশ্লেষক নই, এবং যদি আমার এটি জানা দরকার তবে অন্যান্য দেবগণ সম্ভবত এটিও করেন!
আন্দ্রেস জোল্টান

উত্তর:


7

ঠিক আছে তাই আমি এটিকে পেলাম - অফ-সুযোগে আমি এটিকে প্রশ্নের সম্পাদনা হিসাবে পোস্ট করছি না যদিও যদিও এটি সঠিক পথে রয়েছে বলে মনে হচ্ছে, আমি যা কাজ করছি তার থেকে আরও ভাল উপায় হতে পারে on । চিত্র আমি গণতন্ত্র সিদ্ধান্ত নিতে দিন!

এই লিঙ্কটি ব্যবহার করে আমি এক্সএমএল ফাইলের ফর্ম্যাটটি বের করতে সক্ষম হয়েছি যা setParamFileএমএসডিপ্ল্লোয়ের জন্য স্যুইচ ব্যবহার করা উচিত। আমিও অতীতে, ওয়েব ডিপ্লোমেন্ট সরঞ্জাম ইনস্টল করার পরে আইআইএসের মধ্যে এম্বেডড জিইআইআই ব্যবহার করে ডিক্লেয়ারামপামফায়াল এক্সএমএলের ফর্ম্যাটটি বের করেছিলাম।

সুতরাং, 'সাইটএ' নামে একটি সাইট দেওয়া হয়েছে, অ্যাপ্লিকেশন হোস্ট.কনফিগ ফাইলটিতে দুটি বাঁধাই প্রবেশের সাহায্যে:

<bindings>
  <binding protocol="http" bindingInformation="*:80:" />
  <binding protocol="https" bindingInformation="*:443:" />
</bindings>

(যার অর্থ, বিশেষত - 80 পোর্টের কোনও আইপি ঠিকানা এবং 443 পোর্টের কোনও আইপি ঠিকানা)

প্রকৃত সার্টিটি ব্যবহার করা হচ্ছে অ্যাপ্লিকেশন হোস্ট.কনফিগে নয়, পরিবর্তে Http.sys এর কনফিগারেশনে ( এই নিবন্ধ অনুযায়ী ) is যখন এমএসডিপ্লয় সাইটটির জন্য একটি প্যাকেজ প্রস্তুত করে, এটি সেই তথ্য এম্বেড করবে - যা আমি শেষ হিসাবে উল্লেখ করেছি বলে আশীর্বাদ হতে পারে না।

প্রথম পদক্ষেপটি এমন একটি প্যারামিটারের এক্সএমএল ফাইল ঘোষণা করা হয় যা আমরা লক্ষ্য লাইভ সার্ভারগুলির জন্য একটি একক প্যাকেজ প্যারামিটারাইজ করতে ব্যবহার করব:

<parameters>
  <!-- declare parameter for Http Binding -->
  <parameter name="SiteA-http" description="SiteA Http Binding">
    <parameterEntry kind="DestinationBinding" scope="SiteA" match=":80:" />
  </parameter>
  <!-- declare parameter for Https Binding -->
  <parameter name="SiteA-https" description="SiteA Https Binding">
    <parameterEntry kind="DestinationBinding" scope="SiteA" match=":443:" />
  </parameter>
</parameters>

দুটি অভ্যন্তরীণ প্যারামিটার এন্ট্রিগুলিতে 'ম্যাচ =' বৈশিষ্ট্য মানগুলি নোট করুন। এটি নিশ্চিত করে যে সঠিক বাঁধাই প্রতিস্থাপন করা হয়েছে। এটি একটি রেইজেক্স ( এই টেকনেট নিবন্ধে বর্ণিত হিসাবে ) বিদ্যমান বন্ডিং মানগুলিকে নির্বাচন করে যা প্যারামিটার মান দিয়ে পরিবর্তন করতে হবে যা একটি মুহুর্তের মধ্যে পাস হবে।

আমরা এটি হিসাবে সংরক্ষণ declareparameters.xml

এটি স্থানে রেখে আমরা এখন আমাদের স্টেজিং বাক্স থেকে একটি প্যারামিটারাইজড প্যাকেজ তৈরি করতে পারি, যা থেকে আমরা এই কমান্ড লাইনটি ব্যবহার করতে পারি (এটি আমাদের সাইটএ উপস্থিত রয়েছে এমন একটি সম্পূর্ণ আইআইএস 'চিত্রের জন্য):

msdeploy -verb:sync 
  -source:WebServer,computerName=localhost
  -dest:package="parameterised.zip"
  -declareParamFile:declareparameters.xml

যদি ওয়েব সাইটটি অন্য কোনও ওয়েব সার্ভারে থাকে তবে সেই ওয়েব সার্ভারের নামের সাথে 'লোকালহোস্ট' প্রতিস্থাপন করুন। ওয়েব ডিপ্লয় এজেন্ট পরিষেবাটি কাজ করার জন্য টার্গেট মেশিনে চলতে হবে।

এখন, আমরা একটি পরামিতি XML ফাইল যে আসলে হবে ঘোষণা প্রদান একটি লাইভ সার্ভারে কোনও স্থাপনার জন্য পরামিতি মান:

<parameters>
  <setParameter name="SiteA-http" value="[fixedIPAddress]:80:"/>
  <setParameter name="SiteA-https" value="[fixedIPAddress]:443:"/>
</parameters>

এবং আমরা যে হিসাবে সংরক্ষণ

[targetServerName]parameters.xml

(আমার ক্ষেত্রে আমার দুটি টার্গেট সার্ভার রয়েছে, তাই প্রত্যেকে আলাদা আলাদা ফাইলের নামের সাথে নিজস্ব প্যারামিটারগুলি এক্সএমএল এবং প্রতিটিটিতে কিছুটা আলাদা আইপি পায়)।

অবশেষে, আমরা এই কমান্ড লাইনের মাধ্যমে লক্ষ্য সার্ভারগুলিতে পরামিতি স্থাপন করতে পারি:

msdeploy -verb:sync 
  -source:package="parameterised.zip"
  -dest:WebServer,computerName="[targetServerName]"
  -setParamFile=[targetServerName]parameters.xml

সুতরাং এখন আমরা এইচটিটিপি বা এইচটিপিএস বাইন্ডিং এর আইপিগুলি পরিবর্তন করতে পারি এবং যদি মূলগুলি যথেষ্ট আলাদা হয় তবে আমরা সেই সাইটের জন্য প্রয়োজনীয় যে কোনও সংখ্যক পৃথক বাইন্ডিংকে প্যারামিটারাইস করতে পারি।

এটি এখনও পর্যন্ত একটি ত্রুটি রয়েছে - সুতরাং যে কোনও বিকল্প উত্তর প্রশংসা করুন - এসএসএল কনফিগারেশন উত্স মেশিন থেকে প্যাকেজে অনুলিপি করা হয়েছে - যার অর্থ লাইভ সাইটটিতে এসএসএল কনফিগারেশন মোতায়েনের ক্ষেত্রে সঠিক হতে পারে, উভয় স্টেজিং মেশিন এবং লাইভ সার্ভারকে অবশ্যই একই এসএসএল শংসাপত্রগুলি ব্যবহার করা উচিত।

মজাদার বাক্সটি স্যানিটি পরীক্ষার জন্য স্ব-স্বাক্ষরিত বা অভ্যন্তরীণ শংসাপত্র ব্যবহার করতে পারে এবং তারপরে এক্সএমএল ফাইলগুলি থেকে প্যারামিটারাইজড - সত্যিকারের স্থাপনার উপর সত্যিকারের এসএসএল সার্টিটি প্রয়োগ করা যেতে পারে তা দুর্দান্ত What


এটি এমএসডিপ্লয় সরঞ্জামের একটি সীমাবদ্ধতা হিসাবে উপস্থিত হবে - এবং একমাত্র সমাধান হ'ল এমএসডিপ্লয় চালানো যেতে পারে এমন একটি অতিরিক্ত আইআইএস স্ক্রিপ্ট লিখতে হবে। এই স্ক্রিপ্টটি এসএসএল সার্টের স্টাফ সহ অতিরিক্ত বাইন্ডিংগুলিকে মোড়ানো করবে। এটি একটি অবিশ্বাস্য লজ্জা।
আন্দ্রেস জোলটান

0

-প্লেস কমান্ড লাইন সুইচ যুক্ত করে আপনি পোর্ট নম্বরটি প্রতিস্থাপন করতে পারেন

msdeploy -verb: sync -Source: WebServer, ComputerName = লোকালহোস্ট -পরিচয়: প্যাকেজ = "machinename.zip" - স্থান: অবজেক্টনাম = বাইন্ডিং, টার্গেটএট্রিবিউটনেম = বাইন্ডিং ইনফর্মেশন, ম্যাচ =: 443:, রিপ্লেস =: 445:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.