jenkins - Ansible-playbook for Installing Android SDK -


how install android sdk ansible-playbook?

i need configure jenkins installation playbook , let ansible configure jenkins integrate android

so, have vagrantfile:

# -*- mode: ruby -*- # vi: set ft=ruby :  ip = "192.168.33.55" vm_name = "jenkins"  vagrantfile_api_version = "2"  vagrant.configure(vagrantfile_api_version) |config|   config.vm.box = "geerlingguy/ubuntu1604" #target os: ubuntu 16.04   config.ssh.insert_key = false   config.vm.synced_folder ".", "/vagrant", disabled: true   config.ssh.forward_agent = true    config.vm.provider :virtualbox |v|     v.name = vm_name     v.memory = 1024     v.cpus = 2     v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]     v.customize ["modifyvm", :id, "--ioapic", "on"]   end    config.vm.hostname = vm_name   config.vm.network :private_network, ip: ip   config.vm.network "forwarded_port", guest: 80, host: 8080    # set name of vm. see: http://stackoverflow.com/a/17864388/100134   config.vm.define :jenkins |jenkins|   end    # ansible provisioner.   config.vm.provision "ansible" |ansible|     ansible.playbook = "jenkins/playbook.yml"     ansible.inventory_path = "jenkins/inventory"     ansible.sudo = true   end end 

and jenkins installation playbook:

---  - name: install jenkins   hosts: jenkins   gather_facts: yes    vars_files:     - vars/main.yml    pre_tasks:     - name: install python ansible       raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)   #   changed_when: false   # - setup: # aka gather_facts    become: yes   become_user: root   remote_user: vagrant   vars:      - update_apt_cache: yes    roles:     - base     - geerlingguy.jenkins     - android-sdk 

android-sdk role contains file main.yml tasks:

---  - name: download android sdk   action: get_url url=https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip dest=/tmp/android.tgz  - name: make opt dir user   action: file path=/opt/adt/ state=directory mode=0777  - name: unpack android sdk   action: unarchive copy=no src=/tmp/android.tgz dest=/opt/adt/ creates=/opt/adt//android-sdk-linux  - name: chown files   action: file path=/opt/adt/android-sdk-linux recurse=yes state=directory  - name: install android sdk   action: shell creates=/opt/adt/android-sdk-linux/tools echo y | /opt/adt/android-sdk-linux/tools/android  - name: configure android sdk paths   action: lineinfile dest=/home/vagrant/.bashrc line="{{ item }}"   with_items:   - 'export android_home=/opt/adt/android-sdk-linux'   - 'export android_tools=$android_home/tools/'   - 'export android_platform_tools=$android_home/platform-tools/'   - 'export path=$path:$android_tools:$android_platform_tools' 

so, run vargrantfile:

vagrant 

roles base , geerlingguy.jenkins works, jenkins vm up. can open jenkins page in browser.

but android-sdk role starts work, , see following:

< task [android-sdk : download android sdk] >  changed: [jenkins]  < task [android-sdk : make opt dir user] >  changed: [jenkins]  < task [android-sdk : unpack android sdk] >  changed: [jenkins]  < task [android-sdk : chown files] >  changed: [jenkins]  < task [android-sdk : install android sdk] >  fatal: [jenkins]: failed! => {"changed": true, "cmd": "echo y |  /opt/adt/android-sdk-linux/tools/android", "delta":  "0:00:00.004105", "end": "2017-07-28 17:17:24.446018", "failed":  true, "rc": 127, "start": "2017-07-28 17:17:24.441913", "stderr":  "/bin/sh: 1: /opt/adt/android-sdk-linux/tools/android: not found",  "stderr_lines": ["/bin/sh: 1: /opt/adt/android-sdk-linux/tools/android: not found"], "stdout": "", "stdout_lines": []}     jenkins : ok=41   changed=2    unreachable=0        failed=1        ansible failed complete successfully. error output should     visible above. please fix these errors , try again. 

but can see sdk-tools-linux-3859397.zip contains "tools" directory "android" shell script inside

my system: linux mint 18.2 sonya, virtualbox 5.0.40_ubuntur115130, ansible 2.3.1.0 , vagrant 1.9.7.

the 2 main issues unarchive task won't create /opt/adt/android-sdk-linux directory , don't think command install sdk correct.

as side note don't need use action module each task. can replace module inside of action.

- name: make opt dir user   action: file path=/opt/adt/ state=directory mode=0777 

would become

- name: make opt dir user   file:     path: /opt/adt/     state: directory     mode: 0777 

so solve main issues, first need create destination directory before unpack android sdk.

 - name: create android sdk directory    file:      path: /opt/adt/android-sdk-linux      state: directory   - name: unpack android sdk    unarchive:      copy: no      src: /tmp/android.tgz      dest: /opt/adt/android-sdk-linux      creates: /opt/adt/android-sdk-linux/tools 

i pulled command install sdk of https://gist.github.com/rikyperdana/61b1a5008b757da35a745185bfed7374.

  - name: install android sdk     shell: yes | ./android update sdk     args:       chdir: /opt/adt/android-sdk-linux/tools  

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -