Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # a build block invokes sources and runs provisioning steps on them. The
- # documentation for build blocks can be found here:
- # https://www.packer.io/docs/templates/hcl_templates/blocks/build
- build {
- sources = ["source.vsphere-iso.lab-test"]
- # Get node ip, send it to VM_IP_ADD var.
- provisioner "shell" {
- inline = [
- "export VM_IP_ADD=$(echo $SSH_CONNECTION | cut -f3 -d' ')",
- "env | grep VM_IP >> /tmp/shared.vars"
- ]
- }
- # Update node, install docker
- provisioner "shell" {
- inline = [
- "sudo apt-get -y update",
- "sudo apt install -y docker.io docker-compose htop vim curl sqlite3"
- ]
- }
- # Copy scripts for tower install
- provisioner "file" {
- sources = ["scripts/install_tower.sh","scripts/fullfill_db.tmpl","scripts/make_sql.sh"]
- destination = "/tmp/"
- }
- # Run installation script
- provisioner "shell" {
- execute_command = "sudo env {{ .Vars }} {{ .Path }}"
- environment_vars = [
- "CI_PROXY=${var.PROXY}"
- ]
- }
- # Fill tower
- provisioner "shell" {
- execute_command = "sudo env {{ .Vars }} {{ .Path }}"
- environment_vars = [
- "CI_PROXY=${var.PROXY}"
- ]
- }
- # Run installation script
- provisioner "shell" {
- inline = ["chmod +x /tmp/install_tower.sh","sudo /tmp/install_tower.sh"]
- }
- # Fill tower
- provisioner "shell" {
- inline = ["chmod +x /tmp/make_sql.sh","sudo /tmp/make_sql.sh"]
- }
- # Pull deploy playbooks
- provisioner "shell" {
- inline = ["sudo docker ps","sudo docker exec -t tower_tower_1 tower-pull"]
- }
- # Generate tower.yml file
- provisioner "shell" {
- inline = ["sudo docker ps","sudo docker exec -t tower_tower_1 tower-deploy --generate"]
- }
- # Deploy
- provisioner "shell" {
- inline = ["sudo docker exec -t tower_tower_1 ansible-playbook -i bin/tower-inv /opt/tower/var/tower/playbooks/NOC/site.yml --extra-vars 'tower_show_secrets=false'" ]
- }
- # Info msg
- provisioner "shell" {
- inline = ["echo 'Deploy is completed'"]
- }
- # Some cleaning
- provisioner "shell" {
- inline = ["sudo sqlite3 /opt/tower/var/tower/db/config.db < /tmp/clean_tower.sql"]
- }
- provisioner "shell" {
- execute_command = "sudo env {{ .Vars }} {{ .Path }}"
- inline = [
- <<-SCRIPT
- passwd --expire root
- SCRIPT
- ]
- }
- # Info msg
- provisioner "shell" {
- inline = ["echo 'Cleaning is completed'"]
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement