Diferenças entre edições de "Implante as suas instâncias com Ansible"
Linha 1: | Linha 1: | ||
+ | <span data-link_translate_ja_title="Ansibleによるインスタンスのデプロイ" data-link_translate_ja_url="Ansibleによるインスタンスのデプロイ"></span>[[:ja:Ansibleによるインスタンスのデプロイ]][[ja:Ansibleによるインスタンスのデプロイ]] | ||
<span data-link_translate_zh_title="用Ansible部署你的实例" data-link_translate_zh_url="用Ansible部署你的实例"></span>[[:zh:用Ansible部署你的实例]][[zh:用Ansible部署你的实例]] | <span data-link_translate_zh_title="用Ansible部署你的实例" data-link_translate_zh_url="用Ansible部署你的实例"></span>[[:zh:用Ansible部署你的实例]][[zh:用Ansible部署你的实例]] | ||
<span data-link_translate_de_title="Stellen Sie Ihre Instanzen mit Ansible bereit" data-link_translate_de_url="Stellen Sie Ihre Instanzen mit Ansible bereit"></span>[[:de:Stellen Sie Ihre Instanzen mit Ansible bereit]][[de:Stellen Sie Ihre Instanzen mit Ansible bereit]] | <span data-link_translate_de_title="Stellen Sie Ihre Instanzen mit Ansible bereit" data-link_translate_de_url="Stellen Sie Ihre Instanzen mit Ansible bereit"></span>[[:de:Stellen Sie Ihre Instanzen mit Ansible bereit]][[de:Stellen Sie Ihre Instanzen mit Ansible bereit]] |
Revisão das 16h34min de 29 de julho de 2021
ja:Ansibleによるインスタンスのデプロイ
zh:用Ansible部署你的实例
de:Stellen Sie Ihre Instanzen mit Ansible bereit
nl:Implementeer uw instanties met Ansible
it:Distribuire le tue istanze con Ansible
fr:Deployer vos instances avec Ansible
Este artigo foi traduzido por um sistema de tradução automática. Você pode visualizar a fonte do artigo aqui.
es:Despliegue de sus instancias con Ansible
en:Deploy your instances with Ansible
Descrição
Veremos como implementar rapidamente as instâncias do IKOULA One Cloud através da ferramenta Ansible
Primeiro terá de instalar o Ansible (https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) depois o módulo "cs_instance" (pode ser instalado através de "pip install cs" cf. https://docs.ansible.com/ansible/2.6/modules/cs_instance_module.html) permitindo-lhe utilizar a API do Cloud Ikoula One, se ainda não o fez e ter uma conta Cloud IKOULA One.
Ansible está disponível para a maioria das distribuições GNU/Linux, MacOS mas também pode ser usado via Cygwin, por exemplo, sob Microsoft Windows.
Implementar uma instância num único comando com Possível
Terá primeiro de criar e preencher/adaptar o ficheiro de configuração ".cloudstack.ini" do módulo "cs_instance" de Ansible :
[CloudIkoulaOne] endpoint = https://cloudstack.ikoula.com/client/api key = <clé API de votre utilisateur/compte Cloud IKOULA One> secret = <clé privée de votre utilisateur/compte Cloud IKOULA One> timeout = 30
Depois só precisa de executar este comando, adaptando os valores dos parâmetros (nome da sua instância, nome da rede, etc.) e os próprios parâmetros (se tiver/quer utilizar um par de chaves SSH ou não, por exemplo):
ansible -i "localhost," -c local all -m cs_instance -a "name=<Nom de la VM> display_name=<Nom de la VM> state=present template=< Nom entre simples quotes ou ID du template voulu> api_region=CloudIkoulaOne zone=<Nom de la zone voulu> service_offering=< Nom de l’offre de calcul voulu > networks=<Nom du réseau existant voulu> ssh_key=<Nom de la paire de clés ssh CIO existante>"
onde ""<Nom de l’offre de calcul voulu >é a escolha de :
"t1.pico" (1/2 Core CPU with 512MB RAM and 100Mbps NIC) "t1.micro" (1 Core CPU with 1GB RAM and 100Mbps NIC) "m1.small" (1 Core CPU with 1.7GB RAM and 100Mbps NIC) "m1.medium" (2 Cores CPU with 3.8GB RAM and 100Mbps NIC) "m1.large" (4 Cores CPU with 7.6GB RAM and 100Mbps NIC) "m1.extralarge" (8 Cores CPU with 15.3GB RAM and 100Mbps NIC)
Aqui está um exemplo e o regresso da sua execução:
$ ansible -i "localhost," -c local all -m cs_instance -a "name=Debian9advz1 display_name=Debian9adv1 state=present template='Debian 9 - Minimal - 64bits' api_region=CloudIkoulaOne zone=EU-FR-IKDC1-Z1-ADV service_offering=t1.micro networks=My-Network-Z1 ssh_key=MY_SSHKEY" localhost | SUCCESS => { "account": "ikoula", "affinity_groups": [], "changed": true, "created": "2018-09-12T10:05:00+0200", "default_ip": "10.1.1.176", "display_name": "Debian9adv1", "domain": "ROOT", "hypervisor": "XenServer", "id": "3c60acc9-1480-48bc-ab78-934f0e607d6c", "instance_name": "i-1079-67026-VM", "name": "Debian9advz1", "password": "KYqrT3h28qOs", "password_enabled": true, "security_groups": [], "service_offering": "t1.micro", "ssh_key": "MY_SSHKEY", "state": "Running", "tags": [], "template": "Debian 9 - Minimal - 64bits", "user_data": "", "zone": "EU-FR-IKDC1-Z1-ADV" }
Neste exemplo, implementamos uma instância Debian 9 na zona avançada (EU-FR-IKDC1-Z1-ADV), usando a oferta de computação "t1.micro" na nossa rede chamada "My-Network-Z1" com o nosso par de chaves SSH chamado "MY_SSHKEY".
Para ver todos os parâmetros utilizáveis e outros exemplos, pode utilizar o ansible-doc do módulo "cs_instance":
$ ansible-doc cs_instance > CS_INSTANCE (/usr/lib/python2.7/site-packages/ansible/modules/cloud/cloudstack/cs_instance.py) Deploy, start, update, scale, restart, restore, stop and destroy instances. Options (= is mandatory): - account Account the instance is related to. [Default: None] - affinity_groups Affinity groups names to be applied to the new instance. [Default: []] - api_http_method HTTP method used. (Choices: get, post)[Default: get] - api_key API key of the CloudStack API. [Default: None] - api_region Name of the ini section in the `cloustack.ini' file. [Default: cloudstack] - api_secret Secret key of the CloudStack API. [Default: None] - api_timeout HTTP timeout. [Default: 10] - api_url URL of the CloudStack API e.g. https://cloud.example.com/client/api. [Default: None] - cpu The number of CPUs to allocate to the instance, used with custom service offerings [Default: None] - cpu_speed The clock speed/shares allocated to the instance, used with custom service offerings [Default: None] - disk_offering Name of the disk offering to be used. [Default: None] - disk_size Disk size in GByte required if deploying instance from ISO. [Default: None] ...
Nota: a saída do comando é deliberadamente truncada devido ao seu comprimento.
Implementação de uma instância com um livro de jogo possível
Da mesma forma que acima, deve primeiro criar e preencher/adaptar o ficheiro de configuração ".cloudstack.ini" do módulo "cs_instance" do Ansible :
[CloudIkoulaOne] endpoint = https://cloudstack.ikoula.com/client/api key = <clé API de votre utilisateur/compte Cloud IKOULA One> secret = <clé privée de votre utilisateur/compte Cloud IKOULA One> timeout = 30
Depois só precisa de criar um ficheiro playbook (extensão yml / formato YAML), como abaixo, adaptando os valores dos parâmetros (nome da sua instância, nome da rede, etc.) e os próprios parâmetros (se tiver/quer utilizar um par de chaves SSH ou não, por exemplo) :
Exemplo de um livro de jogo para a implantação de uma instância numa zona avançada:
$ cat deploy_instance_adv.yml --- - hosts: all connection: local user: root tasks: - name: 'Create Debian instance in Cloud IKOULA One with Ansible Playbook' cs_instance: name: "<Nom de la VM>" state: present display_name: "<Nom de la VM>" template: "<Nom entre simples quotes ou ID du template CIO voulu>" api_region: "CloudIkoulaOne" zone: "<Nom de la zone voulu>" service_offering: "<Nom de l’offre de calcul voulu >" networks: "<Nom du réseau existant voulu>" ssh_key: "<Nom de la paire de clés ssh CIO existante>" ...
Exemplo de um playbook para a implantação de uma instância numa zona básica (onde simplesmente substituímos o parâmetro de rede pelo parâmetro de grupos de segurança e acrescentamos o retorno pós implantação do endereço ip público atribuído ao vm):
$ cat deploy_instance_basic.yml --- - hosts: all connection: local user: root tasks: - name: 'Create Debian instance in Cloud IKOULA One with Ansible Playbook' cs_instance: name: "<Nom de la VM>" state: present display_name: "<Nom de la VM>" template: "<Nom entre simples quotes ou ID du template CIO voulu>" api_region: "CloudIkoulaOne" zone: "<Nom de la zone voulu>" service_offering: "<Nom de l’offre de calcul voulu >" security_groups: "<Nom du groupe de sécurité existant voulu>" ssh_key: "<Nom de la paire de clés ssh CIO existante>" - name: "VM ip address:" debug: var: vminfo.default_ip ...
Uma vez adaptados os parâmetros e os seus valores, eis um exemplo de como executar o playbook (adaptar o nome do ficheiro do seu playbook, se necessário):
$ ansible-playbook -i "localhost," -c local deploy_instance_adv.yml PLAY [all] ******************************************************************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************************************** ok: [localhost] TASK [Create Debian instance in Cloud IKOULA One with Ansible Playbook] ******************************************************************************************************************************************************************************************************************************** changed: [localhost] PLAY RECAP ******************************************************************************************************************************************************************************************************************************************************************** localhost : ok=2 changed=1 unreachable=0 failed=0
Catégorie :Cloud public Catégorie:API Catégorie :Cloud</Nom>