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
Post a Comment