{
"terraform": {
"required_providers": [
{
"huaweicloud": {
"source": "huawei.com/provider/huaweicloud",
"version": ">=1.35.2"
}
}
]
},
"provider": {
"huaweicloud": {
"cloud": "myhuaweicloud.com",
"endpoints": {
"iam": "iam.cn-north-4.myhuaweicloud.com",
"dns": "dns.cn-north-4.myhuaweicloud.com"
},
"insecure": true,
"region": "cn-north-4",
"auth_url": "https://iam.cn-north-4.myhuaweicloud.com/v3"
}
},
"variable": {
"vpc_name": {
"default": "erp-based-on-odoo_demo",
"description": "虚拟私有云名称,该模板使用新建VPC,不允许重名。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。默认:erp-based-on-odoo_demo",
"type": "string",
"nullable": "false"
},
"secgroup_name": {
"default": "erp-based-on-odoo_demo",
"description": "安全组名称,该模板使用新建安全组。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。默认:erp-based-on-odoo_demo",
"type": "string",
"nullable": "false"
},
"ecs_name": {
"default": "erp-based-on-odoo_demo",
"description": "弹性云服务器名称,不允许重名。取值范围:1-64个字符组成,包括字母、数字、下划线 (_)、连字符 (-) 和句点 (.)。默认:erp-based-on-odoo_demo",
"type": "string",
"nullable": "false"
},
"ecs_flavor_id": {
"default": "s6.large.2",
"description": "弹性云服务器规格,默认s6.large.2(2U4G),其他规格请参考部署指南配置。",
"type": "string",
"nullable": "false"
},
"ecs_image": {
"default": "Ubuntu 18.04 server 64bit",
"description": "弹性云服务器镜像,默认Ubuntu 18.04 server 64bit,其他镜像规格请参考部署指南配置。",
"type": "string",
"nullable": "false"
},
"ecs_password": {
"default": "",
"description": "弹性云服务器初始密码,创建完成后,请参考部署指南登录ECS控制台修改密码。取值范围:长度为8-26位,密码至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,密码不能包含用户名或用户名的逆序。管理员帐户为root。",
"type": "string",
"nullable": "false",
"sensitive": "true"
},
"eip_size": {
"default": 5,
"description": "弹性公网IP大小,该模板带宽的按需计费模式为按带宽计费。默认5Mbit/s。取值范围:1-2,000 Mbit/s。",
"type": "string",
"nullable": "false"
},
"rds_name": {
"default": "erp-based-on-odoo_demo",
"description": "云数据库RDS名称,不支持重名。取值范围:1 到 64 个字符组成,包括字母、数字、下划线 (_)、连字符 (-) 和句点 (.)。默认:erp-based-on-odoo_demo",
"type": "string",
"nullable": "false"
},
"rds_flavor_id": {
"default": "rds.pg.n1.medium.2",
"description": "云数据库RDS规格。默认rds.mysql.n1.medium.2(1U2G),其他规格请参考部署指南配置。",
"type": "string",
"nullable": "false"
},
"rds_admin_pass": {
"default": "",
"description": "云数据库RDS初始密码,创建完成后,请参考部署指南登录RDS控制台修改密码。取值范围:支持的密码长度是8~32个字符,至少包含大写字母、小写字母、数字、特殊字符三种字符的组合。管理员账户名root。",
"type": "string",
"nullable": "false",
"sensitive": "true"
},
"pgsql_admin_pass": {
"default": "",
"description": "PostgreSQL初始密码,创建完成后,请参考部署指南登录RDS控制台修改密码。取值范围:支持的密码长度是8~32个字符,至少包含大写字母、小写字母、数字、特殊字符(~!@#%^*-_=+?,)三种字符的组合。管理员账户名odoo13。",
"type": "string",
"nullable": "false",
"sensitive": "true"
}
},
"data": {
"huaweicloud_availability_zones": {
"az": {}
},
"huaweicloud_images_image": {
"image": {
"most_recent": true,
"name": "${var.ecs_image}",
"visibility": "public"
}
}
},
"resource": {
"huaweicloud_vpc": {
"vpc": {
"cidr": "192.168.0.0/16",
"name": "${var.vpc_name}"
}
},
"huaweicloud_vpc_subnet": {
"subnet": {
"cidr": "${huaweicloud_vpc.vpc.cidr}",
"gateway_ip": "192.168.0.1",
"name": "${var.vpc_name}",
"vpc_id": "${huaweicloud_vpc.vpc.id}"
}
},
"huaweicloud_networking_secgroup": {
"secgroup": {
"name": "${var.secgroup_name}"
}
},
"huaweicloud_networking_secgroup_rule": {
"allow_ssh_linux": {
"description": "允许SSH远程连接Linux弹性云服务器",
"direction": "ingress",
"ethertype": "IPv4",
"ports": "22",
"protocol": "tcp",
"remote_ip_prefix": "121.36.59.153/32",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
},
"allow_http": {
"description": "允许使用HTTP协议访问网站",
"direction": "ingress",
"ethertype": "IPv4",
"ports": "80",
"protocol": "tcp",
"remote_ip_prefix": "0.0.0.0/0",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
},
"allow_https": {
"description": "允许使用HTTPS协议访问网站",
"direction": "ingress",
"ethertype": "IPv4",
"ports": "443",
"protocol": "tcp",
"remote_ip_prefix": "0.0.0.0/0",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
},
"allow_odoo": {
"description": "允许使用Odoo",
"direction": "ingress",
"ethertype": "IPv4",
"ports": "8069",
"protocol": "tcp",
"remote_ip_prefix": "0.0.0.0/0",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
},
"allow_ping": {
"description": "允许ping程序测试弹性云服务器的连通性",
"direction": "ingress",
"ethertype": "IPv4",
"protocol": "icmp",
"remote_ip_prefix": "0.0.0.0/0",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}"
}
},
"huaweicloud_vpc_eip": {
"eip": {
"bandwidth": [
{
"charge_mode": "bandwidth",
"name": "${var.ecs_name}",
"share_type": "PER",
"size": "${var.eip_size}"
}
],
"publicip": [
{
"type": "5_bgp"
}
]
}
},
"huaweicloud_rds_instance": {
"rds": {
"availability_zone": [
"${data.huaweicloud_availability_zones.az.names[0]}"
],
"backup_strategy": {
"keep_days": 1,
"start_time": "00:00-01:00"
},
"count": 1,
"db": {
"password": "${var.rds_admin_pass}",
"type": "PostgreSQL",
"version": "10.20"
},
"flavor": "${var.rds_flavor_id}",
"name": "${var.rds_name}",
"security_group_id": "${huaweicloud_networking_secgroup.secgroup.id}",
"subnet_id": "${huaweicloud_vpc_subnet.subnet.id}",
"volume": {
"size": "40",
"type": "CLOUDSSD"
},
"vpc_id": "${huaweicloud_vpc.vpc.id}"
}
},
"huaweicloud_compute_instance": {
"ecs": {
"depends_on": [
"huaweicloud_vpc_eip.eip"
],
"eip_id": "${huaweicloud_vpc_eip.eip.id}",
"availability_zone": "${data.huaweicloud_availability_zones.az.names[0]}",
"charging_mode": "postPaid",
"flavor_id": "${var.ecs_flavor_id}",
"image_id": "${data.huaweicloud_images_image.image.id}",
"name": "${var.ecs_name}",
"network": {
"uuid": "${huaweicloud_vpc_subnet.subnet.id}"
},
"security_group_ids": [
"${huaweicloud_networking_secgroup.secgroup.id}"
],
"system_disk_size": "40",
"system_disk_type": "SAS",
"user_data": "#!/bin/bash\nwget -P /root/ https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/build-an-ERP-based-on-odoo/userdata/install_odoo.sh\nbash /root/install_odoo.sh ${huaweicloud_rds_instance.rds[0].private_ips[0]} ${var.pgsql_admin_pass}\necho 'root:${var.ecs_password}' | chpasswd\nrm -rf/root/install_odoo.sh"
}
}
},
"output": {
"初始化Odoo页面": {
"value": "部署成功后,请按照部署指南开始使用说明操作,耐心等待10-20分钟,在浏览器页面访问http://${huaweicloud_vpc_eip.eip.address}:8069"
}
}
}