You built your infrastructure templates, watched them deploy fine on Ubuntu, then moved to Rocky Linux and chaos broke loose. Permissions flailed, startup scripts misbehaved, and the whole process felt like wrestling an octopus. Let’s fix that.
Google Cloud Deployment Manager excels at automating stack creation. It’s great at defining resources declaratively, linking compute, storage, and networking in repeatable patterns. Rocky Linux, the enterprise-hardened offspring of CentOS, is equally strong—predictable releases, superb stability, and no vendor lock-in. Together, they form a solid foundation for teams that prefer control over convenience.
The integration hinges on identity, metadata, and automation flow. Deployment Manager templates specify instances, but Rocky needs boot-time configuration that stays atomic. That means using Cloud Config’s startup-script metadata key to call Rocky’s native automation (like Kickstart or custom packages) right after provisioning. The template doesn’t need to store raw credentials. Instead, link with service accounts using IAM roles scoped tightly to the Rocky environment. Simple, clean, and traceable.
Best practices that keep you sane
- Map IAM roles precisely. Avoid project-wide Editor rights. Use deployment-specific accounts.
- Store package repos and GPG keys in Cloud Storage with access controls tied to OIDC identity providers like Okta.
- Log every deployment. Rocky’s
journalctlpairs well with Cloud Logging for unified visibility. - Rotate instance secrets using Google Secrets Manager, not inline template variables.
- Treat Deployment Manager as code. Version control your templates like any other repo.
Key benefits of doing it right
- Faster instance readiness on every deploy.
- Tighter audit trails for SOC 2 or internal governance.
- Reliable app bootstraps without manual shell fixes.
- Reproducible infra that behaves the same across test and prod.
- Less time debugging inconsistent permissions.
Featured answer