Advertisement
SpikePy

playbook.yml

Jul 30th, 2019
488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.47 KB | None | 0 0
  1. #!/usr/bin/env ansible-playbook
  2. ---
  3. - name: Root setup tasks
  4.   hosts: all
  5.   remote_user: LoadTest
  6.   become: yes
  7.   tasks:
  8.   - name: Update all packages
  9.     package: state=latest name=*
  10.  
  11.   - name: Install necessary programs
  12.     package:
  13.       state: latest
  14.       name: "{{ item }}"
  15.     loop:
  16.    - git
  17.     - openjdk-8-jdk-headless
  18.     - gradle
  19.  
  20.  
  21. - name: User setup tasks
  22.   hosts: all
  23.   remote_user: LoadTest
  24.   vars_files:
  25.  - variables.yml
  26.   vars_prompt:
  27.   - name: nexus_user
  28.     prompt: "Nexus Username"
  29.     private: no
  30.   - name: nexus_passwd
  31.     prompt: "Nexus Password"
  32.     private: yes
  33.   tasks:
  34.   - name: Create .ssh directory
  35.     file:
  36.       path: ~/.ssh/
  37.       state: directory
  38.  
  39.   - name: Save default ssh-public-key in authorized_keys to SSH without passwort prompt
  40.     copy:
  41.      # src: ./key
  42.       src: ~/.ssh/id_rsa.pub
  43.       # content: "{{ ssh_pub_key }}"
  44.       dest: ~/.ssh/authorized_keys
  45.  
  46.   - name: Clone git project
  47.     git:
  48.      # repo: "https://{{ git_user | urlencode }}:{{ git_passwd | urlencode }}@{{ git_repositoy }}"
  49.       repo: "https://gitlab-ci-token:{{ gitlab_token }}@{{ git_repositoy }}"
  50.       dest: ~/project
  51.       force: yes
  52.       version: "{{ git_repositoy_branch }}"
  53.  
  54.   - name: Find script files and make them executable
  55.     shell: find . \( -name "*.sh" -o -name "gradlew" \) -exec chmod u+x {} +
  56.  
  57.   - name: Create nexus credentials file from template
  58.     template:
  59.       src: templates/credentials.properties.j2
  60.       dest: ~/project/credentials.properties
  61.  
  62.  
  63. - name: Agent-Tasks
  64.   hosts: agents
  65.   remote_user: LoadTest
  66.   tasks:
  67.   - name: Start AgentController
  68.     shell: cd project && nohup ./gradlew agentControllerStart &
  69.  
  70.  
  71.   - name: Waiting for agentController-process (max 3min)
  72.     command: pgrep -f selenium
  73.     retries: 30
  74.     delay: 6
  75.     register: exitStatus
  76.     until: exitStatus.rc == 0
  77.  
  78.  
  79. - name: Master-Tasks
  80.   hosts: master
  81.   remote_user: LoadTest
  82.   tasks:
  83.   - name: Copy quality-agents.properties
  84.     template:
  85.       src: templates/mastercontroller.properties.j2
  86.       dest: ~/project/config/mastercontroller.properties
  87.  
  88.   - name: Copy mastercrontoller.properties
  89.     template:
  90.       src: templates/quality-agent.properties.js
  91.       dest: ~/project/loadtest/quality-agent.properties
  92.  
  93.   - name: Start loadtest
  94.     shell: cd project && ./gradlew loadtest
  95.  
  96.   - name: Pull reports
  97.     synchronize:
  98.       mode: pull
  99.       src: ~/project/loadtest/reports/
  100.       dest: ~/loadtest_reports/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement