{ "variables": { "vpc": "{{env `BUILD_VPC_ID`}}", "subnet": "{{env `BUILD_SUBNET_ID`}}", "PROFILE": "{{env `AWS_PROFILE`}}", "STAGE": "{{env `STAGE`}}", "AMI_BASENAME": "{{env `AMI_BASENAME`}}" }, "builders": [ { "type": "amazon-ebs", "name": "Custom AMI builder", "region": "ap-northeast-1", "source_ami_filter": { "filters": { "name": "RHEL-7.*" }, "owners": [ "309956199498" ], "most_recent": true }, "instance_type": "t2.small", "ssh_username": "ec2-user", "ami_name": "{{user `AMI_BASENAME`}}-{{user `STAGE`}}-{{timestamp}}", "tags": { "Name": "{{user `AMI_BASENAME`}}-{{user `STAGE`}}", "Base_AMI_ID": "{{ .SourceAMI }}", "Base_AMI_NAME": "{{ .SourceAMIName }}", "BUSINESS_REGION": "ACYAN", "BUSINESS_UNIT": "MOBILITY", "CLIENT": "KDDI", "PLATFORM": "JAPAN_HORIZON_CTI" }, "run_tags": { "Name": "{{user `AMI_BASENAME`}}-{{user `STAGE`}}-packer", "BUSINESS_REGION": "ACYAN", "BUSINESS_UNIT": "MOBILITY", "CLIENT": "KDDI", "PLATFORM": "JAPAN_HORIZON_CTI", "SCHEDULER:SLEEP": "INACTIVE" }, "run_volume_tags": { "Name": "{{user `AMI_BASENAME`}}-{{user `STAGE`}}-packer", "BUSINESS_REGION": "ACYAN", "BUSINESS_UNIT": "MOBILITY", "CLIENT": "KDDI", "PLATFORM": "JAPAN_HORIZON_CTI" }, "snapshot_tags": { "Name": "{{user `AMI_BASENAME`}}-{{user `STAGE`}}", "BUSINESS_REGION": "ACYAN", "BUSINESS_UNIT": "MOBILITY", "CLIENT": "KDDI", "PLATFORM": "JAPAN_HORIZON_CTI" }, "ami_description": "RHEL7 with Java/Filebeat", "vpc_id": "{{user `vpc`}}", "subnet_id": "{{user `subnet`}}", "encrypt_boot": "true" } ], "provisioners": [ { "type": "shell", "inline": [ "sudo yum -y install java-1.8.0-openjdk.i686 java-1.8.0-openjdk-debug.i686", "sudo yum -y install java-1.8.0-openjdk-devel.i686 java-1.8.0-openjdk-devel-debug.i686", "sudo yum -y install unzip", "sudo yum -y install nano", "sudo yum -y install dos2unix", "sudo curl 'https://s3.amazonaws.com/aws-cli/awscli-bundle.zip' -o 'awscli-bundle.zip'", "sudo unzip awscli-bundle.zip", "sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws", "sudo rm -rf awscli-bundle", "sudo rm -f awscli-bundle.zip", "sudo yum -y install https://s3.amazonaws.com/amazoncloudwatch-agent/redhat/amd64/latest/amazon-cloudwatch-agent.rpm", "sudo yum -y install https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm" ] }, { "type": "shell", "inline": [ "mkdir -p /tmp/platform-uploads/etc/cron.d", "mkdir -p /tmp/platform-uploads/etc/gov-ad-auth", "mkdir -p /tmp/platform-uploads/etc/metricbeat/conf.d", "mkdir -p /tmp/platform-uploads/etc/metricbeat/shell", "mkdir -p /tmp/platform-uploads/etc/systemd/system", "mkdir -p /tmp/platform-uploads/etc/yum.repos.d", "mkdir -p /tmp/platform-uploads/opt/asurion", "mkdir -p /tmp/platform-uploads/opt/aws/amazon-cloudwatch-agent/etc", "mkdir -p /tmp/platform-uploads/opt/gov-ad-auth/bin", "mkdir -p /tmp/platform-uploads/opt/mvap/tsapi/client/certs/CA", "mkdir -p /tmp/platform-uploads/usr/lib" ] }, { "type": "file", "source": "../platform-uploads", "destination": "/tmp" }, { "type": "shell", "inline": [ "sudo chown -R root:root /tmp/platform-uploads", "sudo mv -f /tmp/platform-uploads/etc/yum.repos.d/* /etc/yum.repos.d/", "sudo yum -y install metricbeat", "sudo mv /tmp/platform-uploads/opt/cti-agent-monitor/{{user `STAGE`}}.sh /tmp/platform-uploads/opt/cti-agent-monitor/startup.sh", "sudo dos2unix /tmp/platform-uploads/opt/cti-agent-monitor/startup.sh", "sudo dos2unix /tmp/platform-uploads/opt/log-tailer/log-tail.sh", "sudo mv /tmp/platform-uploads/opt/aws/amazon-cloudwatch-agent/etc/json/{{user `STAGE`}}.json /tmp/platform-uploads/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json", "sudo rm -rf /tmp/platform-uploads/opt/aws/amazon-cloudwatch-agent/etc/json/", "sudo mv /tmp/platform-uploads/etc/metricbeat/shell/{{user `STAGE`}}.sh /tmp/platform-uploads/etc/metricbeat/start-metricbeat.sh", "sudo rm -rf /tmp/platform-uploads/etc/metricbeat/shell/", "sudo yum -y install filebeat", "sudo mv /tmp/platform-uploads/etc/filebeat/shell/{{user `STAGE`}}.sh /tmp/platform-uploads/etc/filebeat/start-filebeat.sh", "sudo rm -rf /tmp/platform-uploads/etc/filebeat/shell/", "sudo cp -rf /tmp/platform-uploads/etc/* /etc/", "sudo cp -rf /tmp/platform-uploads/usr/* /usr/", "sudo cp -rf /tmp/platform-uploads/opt/* /opt/", "sudo yum -y install /opt/asurion/tsapi-client-linux-8.0.1-132.i386.rpm", "sudo chmod 644 /etc/metricbeat/metricbeat.yml /etc/metricbeat/conf.d/*", "sudo chmod 755 /etc/metricbeat", "sudo chmod 755 /etc/metricbeat/conf.d", "sudo chmod 755 /etc/metricbeat/start-metricbeat.sh", "sudo chmod 644 /etc/filebeat/filebeat.yml /etc/filebeat/conf.d/* /etc/filebeat/modules.d/*", "sudo chmod 755 /etc/filebeat", "sudo chmod 755 /etc/filebeat/conf.d", "sudo chmod 755 /etc/filebeat/modules.d", "sudo chmod 755 /etc/filebeat/start-filebeat.sh", "sudo chmod 775 /opt/cti-agent-monitor", "sudo chmod 755 /opt/cti-agent-monitor/startup.sh", "sudo chmod 775 /opt/log-tailer", "sudo chmod 755 /opt/log-tailer/log-tail.sh", "sudo chmod 755 /opt/gov-ad-auth/bin/startup.sh", "sudo chmod 755 /usr/lib/libTsapiJava.so", "sudo chmod 644 /usr/lib/tslibrc", "sudo chmod 755 /etc/yum.repos.d", "sudo systemctl enable gov-ad-auth", "sudo systemctl enable cti-agent-monitor", "sudo systemctl enable cti-log-tailer", "sudo systemctl enable metricbeat", "sudo systemctl enable amazon-cloudwatch-agent", "sudo rm -rf /tmp/platform-uploads" ] }, { "type": "shell", "inline": [ "sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm", "sudo yum -y install ansible" ] }, { "type": "ansible-local", "playbook_files": [ "../ansible/updatepackages.yml", "../ansible/user-creation.yml", "../ansible/beats.yml", "../ansible/post-install-cleanup.yml" ], "playbook_dir": "../ansible", "galaxy_file": "../ansible/requirements.yml", "extra_arguments": [ "--extra-vars \"STAGE={{user `STAGE`}}\"" ] } ], "post-processors": [ { "type": "manifest", "output": "manifest-stationlink-agent-monitor-{{user `STAGE`}}.json", "strip_path": true, "custom_data": { "ami_name": "{{user `AMI_BASENAME`}}-{{user `STAGE`}}" } } ] }