“用Ansible部署你的实例”的版本间的差异
第1行: | 第1行: | ||
+ | <span data-link_translate_ro_title="Implementarea instanțelor cu Ansible" data-link_translate_ro_url="Implementarea instanțelor cu Ansible"></span>[[:ro:Implementarea instanțelor cu Ansible]][[ro:Implementarea instanțelor cu Ansible]] | ||
<span data-link_translate_ru_title="Развертывание ваших экземпляров с помощью Ansible" data-link_translate_ru_url="Развертывание ваших экземпляров с помощью Ansible"></span>[[:ru:Развертывание ваших экземпляров с помощью Ansible]][[ru:Развертывание ваших экземпляров с помощью Ansible]] | <span data-link_translate_ru_title="Развертывание ваших экземпляров с помощью Ansible" data-link_translate_ru_url="Развертывание ваших экземпляров с помощью Ansible"></span>[[:ru:Развертывание ваших экземпляров с помощью Ansible]][[ru:Развертывание ваших экземпляров с помощью Ansible]] | ||
<span data-link_translate_pl_title="Wdrażaj instancje za pomocą Ansible" data-link_translate_pl_url="Wdrażaj instancje za pomocą Ansible"></span>[[:pl:Wdrażaj instancje za pomocą Ansible]][[pl:Wdrażaj instancje za pomocą Ansible]] | <span data-link_translate_pl_title="Wdrażaj instancje za pomocą Ansible" data-link_translate_pl_url="Wdrażaj instancje za pomocą Ansible"></span>[[:pl:Wdrażaj instancje za pomocą Ansible]][[pl:Wdrażaj instancje za pomocą Ansible]] |
2021年7月29日 (四) 16:37的最新版本
ro:Implementarea instanțelor cu Ansible
ru:Развертывание ваших экземпляров с помощью Ansible
pl:Wdrażaj instancje za pomocą Ansible
ja:Ansibleによるインスタンスのデプロイ
fr:Deployer vos instances avec Ansible
这篇文章是从由软件进行自动翻译。你可以看到这篇文章的源代码
de:Stellen Sie Ihre Instanzen mit Ansible bereit
nl:Implementeer uw instanties met Ansible
it:Distribuire le tue istanze con Ansible
pt:Implante as suas instâncias com Ansible
es:Despliegue de sus instancias con Ansible
en:Deploy your instances with Ansible
描述
我们将看到如何通过Ansible工具快速部署IKOULA One云的实例
首先,你将需要安装Ansible (https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)然后是 "cs_instance "模块(可以通过 "pip install cs "来安装)。 https://docs.ansible.com/ansible/2.6/modules/cs_instance_module.html)允许您使用Cloud Ikoula One的API,如果还没有这样做,并且拥有Cloud IKOULA One的账户。
Ansible适用于大多数GNU/Linux发行版和MacOS,但也可以通过Cygwin使用,例如在Microsoft Windows下。
使用Ansible ,在一条命令中部署一个实例。
你首先需要创建和填写/调整Ansible 的 "cs_instance "模块的".cloudstack.ini "配置文件。
[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
然后你只需要运行这个命令,调整参数值(你的实例名称、网络名称等)和参数本身(例如你是否有/想要使用SSH密钥对)。
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>"
其中"<Nom de l’offre de calcul voulu >"是选择 。
"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)
下面是一个例子和执行后的回报。
$ 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" }
在这个例子中,我们在高级区(EU-FR-IKDC1-Z1-ADV)部署了一个 Debian 9 实例,在我们的网络中使用名为 "My-Network-Z1 "的计算产品 "t1.micro",并使用名为 "MY_SSHKEY "的SSH密钥对。
要看到所有可用的参数和其他例子,你可以使用 "cs_instance "模块的ansible-doc。
$ 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] ...
注意:由于该命令的长度,其输出被故意截断。
用Ansible playbook部署一个实例
和上面的方法一样,你必须首先创建和填写/调整Ansible的 "cs_instance "模块的".cloudstack.ini "配置文件。
[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
然后你只需要创建一个playbook文件(yml扩展名/YAML格式),如下所示,调整参数值(实例名称、网络名称等)和参数本身(例如,如果你有/想要使用SSH密钥对)。
用于在高级区域部署实例的游戏手册的例子。
$ 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>" ...
在基本区域部署实例的游戏手册示例(我们只需用安全组参数替换网络参数,并添加部署后返回分配给虚拟机的公共 IP 地址)。
$ 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 ...
一旦参数和它们的值被调整,下面是一个如何运行该游戏手册的例子(如果需要,调整你的游戏手册文件的名称)。
$ 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>