{"id":17569077,"url":"https://github.com/riywo/mesos-ceph","last_synced_at":"2025-08-08T10:43:10.785Z","repository":{"id":25060499,"uuid":"28480619","full_name":"riywo/mesos-ceph","owner":"riywo","description":"Terraform module for Mesos + Ceph cluster in AWS VPC and Packer template for the AMI.","archived":false,"fork":false,"pushed_at":"2014-12-25T12:19:51.000Z","size":204,"stargazers_count":26,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-28T11:48:51.027Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riywo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-25T12:02:51.000Z","updated_at":"2019-06-12T21:14:44.000Z","dependencies_parsed_at":"2022-08-23T12:01:57.065Z","dependency_job_id":null,"html_url":"https://github.com/riywo/mesos-ceph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/riywo/mesos-ceph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riywo%2Fmesos-ceph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riywo%2Fmesos-ceph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riywo%2Fmesos-ceph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riywo%2Fmesos-ceph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riywo","download_url":"https://codeload.github.com/riywo/mesos-ceph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riywo%2Fmesos-ceph/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269409957,"owners_count":24412143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-21T17:09:00.326Z","updated_at":"2025-08-08T10:43:10.745Z","avatar_url":"https://github.com/riywo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"mesos-ceph\n==========\n\nTerraform module for Mesos + Ceph cluster in AWS VPC and Packer template for the AMI.\n\n## Summary\n\nThis Terraform module will spin up instances like below by default:\n\n- admin\n    - t2.micro\n    - ssh gateway\n    - run ceph-deploy\n- master1, master2, master3\n    - t2.micro\n    - mesos master\n    - marathon\n    - ceph mon\n    - ceph mds\n    - mount cephfs\n- slaves (default 3)\n    - t2.micro\n    - mesos slave\n    - ceph osd\n        - 1 EBS attached (default 30GB)\n    - mount cephfs\n\n## Usage\n\nJust add the `module` into your Terraform config like below:\n\n````\nprovider \"aws\" {}\n\nresource \"aws_vpc\" \"default\" {\n        cidr_block           = \"10.0.0.0/16\"\n        enable_dns_support   = true\n        enable_dns_hostnames = true\n}\n\nmodule \"mesos_ceph\" {\n        source                   = \"github.com/riywo/mesos-ceph/terraform\"\n        vpc_id                   = \"${aws_vpc.default.id}\"\n        key_name                 = \"${var.key_name}\"\n        key_path                 = \"${var.key_path}\"\n        subnet_availability_zone = \"us-east-1e\"\n        subnet_cidr_block        = \"10.0.1.0/24\"\n        master1_ip               = \"10.0.1.11\"\n        master2_ip               = \"10.0.1.12\"\n        master3_ip               = \"10.0.1.13\"\n}\n````\n\nNote: You can use environment variables for AWS configuration and `terraform.tfvars` file for variables.\n\n````\nexport AWS_REGION=us-east-1\nexport AWS_ACCESS_KEY=AAAAAAAAAA\nexport AWS_SECRET_KEY=000000000000000000\n````\n\n````\n$ cat terraform.tfvars\nkey_name = \"your key name\"\nkey_path = \"/path/to/private_pem_file\"\n````\n\nThen, check plan.\n\n````\n$ terraform plan -module-depth -1\nRefreshing Terraform state prior to plan...\n\n\nThe Terraform execution plan has been generated and is shown below.\nResources are shown in alphabetical order for quick scanning. Green resources\nwill be created (or destroyed and then created if an existing resource\nexists), yellow resources are being changed in-place, and red resources\nwill be destroyed.\n\nNote: You didn't specify an \"-out\" parameter to save this plan, so when\n\"apply\" is called, Terraform can't guarantee this is what will execute.\n\n+ aws_vpc.default\n    cidr_block:           \"\" =\u003e \"10.0.0.0/16\"\n    enable_dns_hostnames: \"\" =\u003e \"1\"\n    enable_dns_support:   \"\" =\u003e \"1\"\n    main_route_table_id:  \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_instance.admin\n    ami:               \"\" =\u003e \"ami-06ef816e\"\n    availability_zone: \"\" =\u003e \"\u003ccomputed\u003e\"\n    instance_type:     \"\" =\u003e \"t2.micro\"\n    key_name:          \"\" =\u003e \"your key name\"\n    private_dns:       \"\" =\u003e \"\u003ccomputed\u003e\"\n    private_ip:        \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_dns:        \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_ip:         \"\" =\u003e \"\u003ccomputed\u003e\"\n    security_groups.#: \"\" =\u003e \"\u003ccomputed\u003e\"\n    subnet_id:         \"\" =\u003e \"${aws_subnet.public.id}\"\n    tenancy:           \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_instance.master1\n    ami:               \"\" =\u003e \"ami-06ef816e\"\n    availability_zone: \"\" =\u003e \"\u003ccomputed\u003e\"\n    instance_type:     \"\" =\u003e \"t2.micro\"\n    key_name:          \"\" =\u003e \"your key name\"\n    private_dns:       \"\" =\u003e \"\u003ccomputed\u003e\"\n    private_ip:        \"\" =\u003e \"10.0.1.11\"\n    public_dns:        \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_ip:         \"\" =\u003e \"\u003ccomputed\u003e\"\n    security_groups.#: \"\" =\u003e \"\u003ccomputed\u003e\"\n    subnet_id:         \"\" =\u003e \"${aws_subnet.public.id}\"\n    tenancy:           \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_instance.master2\n    ami:               \"\" =\u003e \"ami-06ef816e\"\n    availability_zone: \"\" =\u003e \"\u003ccomputed\u003e\"\n    instance_type:     \"\" =\u003e \"t2.micro\"\n    key_name:          \"\" =\u003e \"your key name\"\n    private_dns:       \"\" =\u003e \"\u003ccomputed\u003e\"\n    private_ip:        \"\" =\u003e \"10.0.1.12\"\n    public_dns:        \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_ip:         \"\" =\u003e \"\u003ccomputed\u003e\"\n    security_groups.#: \"\" =\u003e \"\u003ccomputed\u003e\"\n    subnet_id:         \"\" =\u003e \"${aws_subnet.public.id}\"\n    tenancy:           \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_instance.master3\n    ami:               \"\" =\u003e \"ami-06ef816e\"\n    availability_zone: \"\" =\u003e \"\u003ccomputed\u003e\"\n    instance_type:     \"\" =\u003e \"t2.micro\"\n    key_name:          \"\" =\u003e \"your key name\"\n    private_dns:       \"\" =\u003e \"\u003ccomputed\u003e\"\n    private_ip:        \"\" =\u003e \"10.0.1.13\"\n    public_dns:        \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_ip:         \"\" =\u003e \"\u003ccomputed\u003e\"\n    security_groups.#: \"\" =\u003e \"\u003ccomputed\u003e\"\n    subnet_id:         \"\" =\u003e \"${aws_subnet.public.id}\"\n    tenancy:           \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_instance.slaves.0\n    ami:                                  \"\" =\u003e \"ami-06ef816e\"\n    availability_zone:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    block_device.#:                       \"\" =\u003e \"1\"\n    block_device.0.delete_on_termination: \"\" =\u003e \"1\"\n    block_device.0.device_name:           \"\" =\u003e \"/dev/sdb\"\n    block_device.0.encrypted:             \"\" =\u003e \"\"\n    block_device.0.snapshot_id:           \"\" =\u003e \"\"\n    block_device.0.virtual_name:          \"\" =\u003e \"\"\n    block_device.0.volume_size:           \"\" =\u003e \"30\"\n    block_device.0.volume_type:           \"\" =\u003e \"\"\n    instance_type:                        \"\" =\u003e \"t2.micro\"\n    key_name:                             \"\" =\u003e \"your key name\"\n    private_dns:                          \"\" =\u003e \"\u003ccomputed\u003e\"\n    private_ip:                           \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_dns:                           \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_ip:                            \"\" =\u003e \"\u003ccomputed\u003e\"\n    security_groups.#:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    subnet_id:                            \"\" =\u003e \"${aws_subnet.public.id}\"\n    tenancy:                              \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_instance.slaves.1\n    ami:                                  \"\" =\u003e \"ami-06ef816e\"\n    availability_zone:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    block_device.#:                       \"\" =\u003e \"1\"\n    block_device.0.delete_on_termination: \"\" =\u003e \"1\"\n    block_device.0.device_name:           \"\" =\u003e \"/dev/sdb\"\n    block_device.0.encrypted:             \"\" =\u003e \"\"\n    block_device.0.snapshot_id:           \"\" =\u003e \"\"\n    block_device.0.virtual_name:          \"\" =\u003e \"\"\n    block_device.0.volume_size:           \"\" =\u003e \"30\"\n    block_device.0.volume_type:           \"\" =\u003e \"\"\n    instance_type:                        \"\" =\u003e \"t2.micro\"\n    key_name:                             \"\" =\u003e \"your key name\"\n    private_dns:                          \"\" =\u003e \"\u003ccomputed\u003e\"\n    private_ip:                           \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_dns:                           \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_ip:                            \"\" =\u003e \"\u003ccomputed\u003e\"\n    security_groups.#:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    subnet_id:                            \"\" =\u003e \"${aws_subnet.public.id}\"\n    tenancy:                              \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_instance.slaves.2\n    ami:                                  \"\" =\u003e \"ami-06ef816e\"\n    availability_zone:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    block_device.#:                       \"\" =\u003e \"1\"\n    block_device.0.delete_on_termination: \"\" =\u003e \"1\"\n    block_device.0.device_name:           \"\" =\u003e \"/dev/sdb\"\n    block_device.0.encrypted:             \"\" =\u003e \"\"\n    block_device.0.snapshot_id:           \"\" =\u003e \"\"\n    block_device.0.virtual_name:          \"\" =\u003e \"\"\n    block_device.0.volume_size:           \"\" =\u003e \"30\"\n    block_device.0.volume_type:           \"\" =\u003e \"\"\n    instance_type:                        \"\" =\u003e \"t2.micro\"\n    key_name:                             \"\" =\u003e \"your key name\"\n    private_dns:                          \"\" =\u003e \"\u003ccomputed\u003e\"\n    private_ip:                           \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_dns:                           \"\" =\u003e \"\u003ccomputed\u003e\"\n    public_ip:                            \"\" =\u003e \"\u003ccomputed\u003e\"\n    security_groups.#:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    subnet_id:                            \"\" =\u003e \"${aws_subnet.public.id}\"\n    tenancy:                              \"\" =\u003e \"\u003ccomputed\u003e\"\n\n+ module.mesos.aws_internet_gateway.public\n    vpc_id: \"\" =\u003e \"${var.vpc_id}\"\n\n+ module.mesos.aws_route_table.public\n    route.#:             \"\" =\u003e \"1\"\n    route.0.cidr_block:  \"\" =\u003e \"0.0.0.0/0\"\n    route.0.gateway_id:  \"\" =\u003e \"${aws_internet_gateway.public.id}\"\n    route.0.instance_id: \"\" =\u003e \"\"\n    vpc_id:              \"\" =\u003e \"${var.vpc_id}\"\n\n+ module.mesos.aws_route_table_association.public\n    route_table_id: \"\" =\u003e \"${aws_route_table.public.id}\"\n    subnet_id:      \"\" =\u003e \"${aws_subnet.public.id}\"\n\n+ module.mesos.aws_security_group.maintenance\n    description:                 \"\" =\u003e \"maintenance\"\n    ingress.#:                   \"\" =\u003e \"1\"\n    ingress.0.cidr_blocks.#:     \"\" =\u003e \"1\"\n    ingress.0.cidr_blocks.0:     \"\" =\u003e \"0.0.0.0/0\"\n    ingress.0.from_port:         \"\" =\u003e \"22\"\n    ingress.0.protocol:          \"\" =\u003e \"tcp\"\n    ingress.0.security_groups.#: \"\" =\u003e \"0\"\n    ingress.0.self:              \"\" =\u003e \"0\"\n    ingress.0.to_port:           \"\" =\u003e \"22\"\n    name:                        \"\" =\u003e \"maintenance\"\n    owner_id:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    vpc_id:                      \"\" =\u003e \"${var.vpc_id}\"\n\n+ module.mesos.aws_security_group.master\n    description:                 \"\" =\u003e \"master\"\n    ingress.#:                   \"\" =\u003e \"2\"\n    ingress.0.cidr_blocks.#:     \"\" =\u003e \"1\"\n    ingress.0.cidr_blocks.0:     \"\" =\u003e \"0.0.0.0/0\"\n    ingress.0.from_port:         \"\" =\u003e \"8080\"\n    ingress.0.protocol:          \"\" =\u003e \"tcp\"\n    ingress.0.security_groups.#: \"\" =\u003e \"0\"\n    ingress.0.self:              \"\" =\u003e \"0\"\n    ingress.0.to_port:           \"\" =\u003e \"8080\"\n    ingress.1.cidr_blocks.#:     \"\" =\u003e \"1\"\n    ingress.1.cidr_blocks.0:     \"\" =\u003e \"0.0.0.0/0\"\n    ingress.1.from_port:         \"\" =\u003e \"5050\"\n    ingress.1.protocol:          \"\" =\u003e \"tcp\"\n    ingress.1.security_groups.#: \"\" =\u003e \"0\"\n    ingress.1.self:              \"\" =\u003e \"0\"\n    ingress.1.to_port:           \"\" =\u003e \"5050\"\n    name:                        \"\" =\u003e \"master\"\n    owner_id:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    vpc_id:                      \"\" =\u003e \"${var.vpc_id}\"\n\n+ module.mesos.aws_security_group.private\n    description:                 \"\" =\u003e \"private\"\n    ingress.#:                   \"\" =\u003e \"3\"\n    ingress.0.cidr_blocks.#:     \"\" =\u003e \"0\"\n    ingress.0.from_port:         \"\" =\u003e \"0\"\n    ingress.0.protocol:          \"\" =\u003e \"udp\"\n    ingress.0.security_groups.#: \"\" =\u003e \"0\"\n    ingress.0.self:              \"\" =\u003e \"1\"\n    ingress.0.to_port:           \"\" =\u003e \"65535\"\n    ingress.1.cidr_blocks.#:     \"\" =\u003e \"0\"\n    ingress.1.from_port:         \"\" =\u003e \"-1\"\n    ingress.1.protocol:          \"\" =\u003e \"icmp\"\n    ingress.1.security_groups.#: \"\" =\u003e \"0\"\n    ingress.1.self:              \"\" =\u003e \"1\"\n    ingress.1.to_port:           \"\" =\u003e \"-1\"\n    ingress.2.cidr_blocks.#:     \"\" =\u003e \"0\"\n    ingress.2.from_port:         \"\" =\u003e \"0\"\n    ingress.2.protocol:          \"\" =\u003e \"tcp\"\n    ingress.2.security_groups.#: \"\" =\u003e \"0\"\n    ingress.2.self:              \"\" =\u003e \"1\"\n    ingress.2.to_port:           \"\" =\u003e \"65535\"\n    name:                        \"\" =\u003e \"private\"\n    owner_id:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    vpc_id:                      \"\" =\u003e \"${var.vpc_id}\"\n\n+ module.mesos.aws_security_group.slave\n    description:                 \"\" =\u003e \"slave\"\n    ingress.#:                   \"\" =\u003e \"1\"\n    ingress.0.cidr_blocks.#:     \"\" =\u003e \"1\"\n    ingress.0.cidr_blocks.0:     \"\" =\u003e \"0.0.0.0/0\"\n    ingress.0.from_port:         \"\" =\u003e \"5051\"\n    ingress.0.protocol:          \"\" =\u003e \"tcp\"\n    ingress.0.security_groups.#: \"\" =\u003e \"0\"\n    ingress.0.self:              \"\" =\u003e \"0\"\n    ingress.0.to_port:           \"\" =\u003e \"5051\"\n    name:                        \"\" =\u003e \"slave\"\n    owner_id:                    \"\" =\u003e \"\u003ccomputed\u003e\"\n    vpc_id:                      \"\" =\u003e \"${var.vpc_id}\"\n\n+ module.mesos.aws_subnet.public\n    availability_zone:       \"\" =\u003e \"us-east-1e\"\n    cidr_block:              \"\" =\u003e \"10.0.1.0/24\"\n    map_public_ip_on_launch: \"\" =\u003e \"1\"\n    vpc_id:                  \"\" =\u003e \"${var.vpc_id}\"\n\n+ module.mesos.null_resource.init_ceph\n\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friywo%2Fmesos-ceph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friywo%2Fmesos-ceph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friywo%2Fmesos-ceph/lists"}