Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
K spuštění ukázkových playbooků v tomto článku se vyžaduje Ansible 2.7 (nebo novější).
Škálovací sady virtuálních počítačů Azure jsou funkce Azure, která umožňuje nakonfigurovat skupinu identických virtuálních počítačů s vyrovnáváním zatížení. Nepředstavují žádné další náklady na škálovací sady a jsou sestaveny z virtuálních počítačů. Platíte jenom za základní výpočetní prostředky, jako jsou instance virtuálních počítačů, nástroje pro vyrovnávání zatížení nebo úložiště spravovaných disků. Díky škálovacím sadám se vrstvy správy a automatizace poskytují ke spouštění a škálování aplikací. Místo toho můžete ručně vytvářet a spravovat jednotlivé virtuální počítače. Použití škálovacích sad ale má dvě klíčové výhody. Jsou integrované do Azure a automaticky škálují vaše virtuální počítače tak, aby vyhovovaly potřebám aplikací.
V tomto článku se naučíte:
- Načtení informací o hostiteli pro skupinu virtuálních počítačů Azure
- Klonování a sestavení ukázkové aplikace
- Instalace prostředí JRE (Java Runtime Environment) do škálovací sady
- Nasadit Java aplikaci do škálovací sady
Požadavky
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nainstalujte Ansible: Proveďte jednu z následujících možností:
- Instalace a konfigurace Ansible na virtuálním počítači s Linuxem
- Nakonfigurujte Azure Cloud Shell a – pokud nemáte přístup k virtuálnímu počítači s Linuxem – vytvořte virtuální počítač pomocí Ansible.
- Škálovací sada virtuálních počítačů: Pokud ještě nemáte škálovací sadu, můžete škálovací sadu nakonfigurovat pomocí Ansible.
- git - Git se používá ke stažení ukázkového kódu Java použitého v tomto kurzu.
- Java SE Development Kit (JDK) – Sada JDK se používá k sestavení ukázkového projektu Java.
- Apache Maven - Apache Maven se používá k sestavení ukázkového projektu Java.
Získání informací o hostiteli
Kód playbooku v této části načte informace o hostiteli pro skupinu virtuálních počítačů. Kód získá veřejné IP adresy a nástroj pro vyrovnávání zatížení v rámci zadané skupiny prostředků a vytvoří skupinu hostitelů pojmenovanou scalesethosts v inventáři.
Uložte následující ukázkový playbook jako get-hosts-tasks.yml.
- name: Get facts for all Public IPs within a resource groups
azure_rm_publicipaddress_info:
resource_group: "{{ resource_group }}"
register: output_ip_address
- name: Get loadbalancer info
azure_rm_loadbalancer_info:
resource_group: "{{ resource_group }}"
name: "{{ loadbalancer_name }}"
register: output
- name: Add all hosts
add_host:
groups: scalesethosts
hostname: "{{ output_ip_address.publicipaddresses[0].ip_address }}_{{ item.properties.frontendPort }}"
ansible_host: "{{ output_ip_address.publicipaddresses[0].ip_address }}"
ansible_port: "{{ item.properties.frontendPort }}"
ansible_ssh_user: "{{ admin_username }}"
ansible_ssh_pass: "{{ admin_password }}"
with_items:
- "{{ output.ansible_info.azure_loadbalancers[0].properties.inboundNatRules }}"
Příprava aplikace na nasazení
Kód playbooku v této části používá git ke klonování ukázkového projektu Java z GitHubu a sestavení projektu.
Uložte následující playbook jako app.yml:
- hosts: localhost
vars:
repo_url: https://github.com/spring-guides/gs-spring-boot.git
workspace: ~/src/helloworld
tasks:
- name: Git Clone sample app
git:
repo: "{{ repo_url }}"
dest: "{{ workspace }}"
- name: Build sample app
shell: mvn package chdir="{{ workspace }}/complete"
Spusťte ukázkový playbook Ansible pomocí následujícího příkazu:
ansible-playbook app.yml
Po spuštění playbooku se zobrazí výstup podobný následujícím výsledkům:
PLAY [localhost]
TASK [Gathering Facts]
ok: [localhost]
TASK [Git Clone sample app]
changed: [localhost]
TASK [Build sample app]
changed: [localhost]
PLAY RECAP
localhost : ok=3 changed=2 unreachable=0 failed=0
Nasazení aplikace do škálovací sady
Kód příručky v této části slouží k:
- Instalace JRE do skupiny hostitelů s názvem
saclesethosts - Nasazení aplikace v Javě do skupiny hostitelů s názvem
saclesethosts
Ukázkový playbook můžete získat dvěma způsoby:
Stáhněte si příručku a uložte ji do
vmss-setup-deploy.yml.Vytvořte nový soubor s názvem
vmss-setup-deploy.yml. Do nového souboru vložte následující kód:
- hosts: localhost
vars:
resource_group: myResourceGroup
scaleset_name: myScaleSet
loadbalancer_name: myScaleSetLb
admin_username: azureuser
admin_password: "{{ admin_password }}"
tasks:
- include: get-hosts-tasks.yml
- name: Install JRE on a scale set
hosts: scalesethosts
become: yes
vars:
workspace: ~/src/helloworld
admin_username: azureuser
tasks:
- name: Install JRE
apt:
name: default-jre
update_cache: yes
- name: Copy app to Azure VM
copy:
src: "{{ workspace }}/complete/target/gs-spring-boot-0.1.0.jar"
dest: "/home/{{ admin_username }}/helloworld.jar"
force: yes
mode: 0755
- name: Start the application
shell: java -jar "/home/{{ admin_username }}/helloworld.jar" >/dev/null 2>&1 &
async: 5000
poll: 0
Před spuštěním playbooku si přečtěte následující poznámky:
V části
varsnahraďte zástupný symbol{{ admin_password }}vlastním heslem.Pokud chcete použít typ připojení ssh s hesly, nainstalujte program sshpass:
Ubuntu:
apt-get install sshpassV některých prostředích se může zobrazit chyba týkající se použití hesla SSH místo klíče. Pokud se zobrazí tato chyba, můžete zakázat kontrolu klíče hostitele přidáním následujícího řádku do
/etc/ansible/ansible.cfgnebo~/.ansible.cfg:[defaults] host_key_checking = False
Playbook spusťte pomocí následujícího příkazu:
ansible-playbook vmss-setup-deploy.yml
Výstup spuštění příkazu ansible-playbook indikuje, že ukázková aplikace Java byla nainstalována do skupiny hostitelů škálovací sady:
PLAY [localhost]
TASK [Gathering Facts]
ok: [localhost]
TASK [Get facts for all Public IPs within a resource groups]
ok: [localhost]
TASK [Get loadbalancer info]
ok: [localhost]
TASK [Add all hosts]
changed: [localhost] ...
PLAY [Install JRE on scale set]
TASK [Gathering Facts]
ok: [40.114.30.145_50000]
ok: [40.114.30.145_50003]
TASK [Copy app to Azure VM]
changed: [40.114.30.145_50003]
changed: [40.114.30.145_50000]
TASK [Start the application]
changed: [40.114.30.145_50000]
changed: [40.114.30.145_50003]
PLAY RECAP
40.114.30.145_50000 : ok=4 changed=3 unreachable=0 failed=0
40.114.30.145_50003 : ok=4 changed=3 unreachable=0 failed=0
localhost : ok=4 changed=1 unreachable=0 failed=0
Ověření výsledků
Zkontrolujte výsledky práce tak, že přejdete na adresu URL nástroje pro vyrovnávání zatížení vaší škálovací sady: