HHWCloudSolution优化模板和readme
159dcd2bAdd on Jan 5, 2023History
{
	"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"
		}
	}
}