mirror of https://github.com/nucypher/nucypher.git
107 lines
3.2 KiB
YAML
107 lines
3.2 KiB
YAML
- name: "Start Felix"
|
|
hosts: "{{ 'tag_Role_' + lookup('env', 'NUCYPHER_NETWORK_NAME') + '_felix' }}"
|
|
user: ubuntu
|
|
gather_facts: false
|
|
|
|
pre_tasks:
|
|
- name: "Install Python2.7 for Ansible Control"
|
|
raw: sudo apt -y update && sudo apt install -y python2.7-minimal python2.7-setuptools
|
|
- include_vars: "{{ lookup('env', 'ANSIBLE_VARIABLES') }}"
|
|
|
|
- include_vars:
|
|
file: "{{ networks_filepath }}"
|
|
name: networks
|
|
|
|
tasks:
|
|
- name: "Install System Dependencies"
|
|
become: yes
|
|
become_flags: "-H -S"
|
|
apt:
|
|
name: "{{ packages }}"
|
|
update_cache: yes
|
|
state: latest
|
|
vars:
|
|
packages:
|
|
- libffi-dev
|
|
- python3
|
|
- python3-pip
|
|
- python3-dev
|
|
- python3-setuptools
|
|
- python3-virtualenv
|
|
- virtualenv
|
|
|
|
- git:
|
|
repo: "{{ git_repo }}"
|
|
dest: ./code
|
|
version: "{{ git_version }}"
|
|
|
|
- pip:
|
|
chdir: ./code
|
|
name: '.'
|
|
editable: true
|
|
virtualenv: '/home/ubuntu/venv'
|
|
virtualenv_python: python3.6
|
|
virtualenv_site_packages: true
|
|
environment:
|
|
LC_ALL: en_US.UTF-8
|
|
LANG: en_US.UTF-8
|
|
|
|
- name: "Check if 'felix.config' Exists"
|
|
become: yes
|
|
become_flags: "-H -S"
|
|
stat:
|
|
path: "~/.local/share/nucypher/felix.config"
|
|
register: config_stat_result
|
|
|
|
- name: "Initialize Felix Configuration"
|
|
become: yes
|
|
become_flags: "-H -S"
|
|
shell: "{{ nucypher_exec }} felix init --geth --network {{ network }}"
|
|
environment:
|
|
NUCYPHER_KEYRING_PASSWORD: "{{ lookup('env', 'NUCYPHER_FELIX_KEYRING_PASSWORD') }}"
|
|
LC_ALL: en_US.UTF-8
|
|
LANG: en_US.UTF-8
|
|
vars:
|
|
nucypher_exec: "/home/ubuntu/venv/bin/nucypher"
|
|
network: "{{ lookup('env', 'NUCYPHER_NETWORK_NAME') }}"
|
|
when: config_stat_result.stat.exists == False
|
|
|
|
- name: "Check if 'felix.db' Exists"
|
|
become: yes
|
|
become_flags: "-H -S"
|
|
stat:
|
|
path: "~/.local/share/nucypher/felix.db"
|
|
register: db_stat_result
|
|
|
|
- name: "Initialize Felix Database"
|
|
become: yes
|
|
become_flags: "-H -S"
|
|
shell: "{{ nucypher_exec }} felix createdb --geth --network {{ network }}"
|
|
environment:
|
|
NUCYPHER_KEYRING_PASSWORD: "{{ lookup('env', 'NUCYPHER_FELIX_KEYRING_PASSWORD') }}"
|
|
NUCYPHER_FELIX_SECRET: "{{ lookup('env', 'NUCYPHER_FELIX_DB_SECRET') }}"
|
|
LC_ALL: en_US.UTF-8
|
|
LANG: en_US.UTF-8
|
|
vars:
|
|
nucypher_exec: "/home/ubuntu/venv/bin/nucypher"
|
|
network: "{{ lookup('env', 'NUCYPHER_NETWORK_NAME') }}"
|
|
when: db_stat_result.stat.exists == False
|
|
|
|
- name: "Open Felix HTTP Port"
|
|
become: yes
|
|
become_flags: "-H -S"
|
|
shell: 'iptables -A INPUT -p tcp -m conntrack --dport {{ felix_http_port }} --ctstate NEW,ESTABLISHED -j ACCEPT'
|
|
vars:
|
|
felix_http_port: 6151
|
|
|
|
- name: "Render Felix's Node Service"
|
|
become: yes
|
|
become_flags: "-H -S"
|
|
template:
|
|
src: ../../services/felix_faucet.j2
|
|
dest: /etc/systemd/system/felix_faucet.service
|
|
mode: 0755
|
|
vars:
|
|
virtualenv_path: '/home/ubuntu/venv'
|
|
nucypher_network_domain: "{{ lookup('env', 'NUCYPHER_NETWORK_NAME') }}"
|