diff --git a/deploy/ansible/felix/initialize_felix.yml b/deploy/ansible/felix/initialize_felix.yml index 9d734a585..6c4123d66 100644 --- a/deploy/ansible/felix/initialize_felix.yml +++ b/deploy/ansible/felix/initialize_felix.yml @@ -13,6 +13,13 @@ name: networks tasks: + - name: "Register Ethereum PPA" + become: yes + become_flags: "-H -S" + apt_repository: + repo: 'ppa:ethereum/ethereum' + state: present + - name: "Install System Dependencies" become: yes become_flags: "-H -S" @@ -22,13 +29,15 @@ state: latest vars: packages: - - libffi-dev + - python-pip - python3 - python3-pip - python3-dev - python3-setuptools - - python3-virtualenv - - virtualenv + - libffi-dev + - software-properties-common + - ethereum + - npm - git: repo: "{{ git_repo }}" @@ -79,7 +88,7 @@ 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') }}" + NUCYPHER_FELIX_DB_SECRET: "{{ lookup('env', 'NUCYPHER_FELIX_DB_SECRET') }}" LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 vars: @@ -102,5 +111,7 @@ dest: /etc/systemd/system/felix_faucet.service mode: 0755 vars: + keyring_password: "{{ lookup('env', 'NUCYPHER_FELIX_KEYRING_PASSWORD') }}" + db_secret: "{{ lookup('env', 'NUCYPHER_FELIX_DB_SECRET') }}" virtualenv_path: '/home/ubuntu/venv' nucypher_network_domain: "{{ lookup('env', 'NUCYPHER_NETWORK_NAME') }}" diff --git a/deploy/ansible/felix/launch_felix.yml b/deploy/ansible/felix/launch_felix.yml index 87cd89b78..2ff43e2cf 100644 --- a/deploy/ansible/felix/launch_felix.yml +++ b/deploy/ansible/felix/launch_felix.yml @@ -14,12 +14,10 @@ tasks: - - 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: 12500 + - git: + repo: "{{ git_repo }}" + dest: ./code + version: "{{ git_version }}" - name: "Render Felix's Node Service" become: yes @@ -29,10 +27,19 @@ dest: /etc/systemd/system/felix_faucet.service mode: 0755 vars: + keyring_password: "{{ lookup('env', 'NUCYPHER_FELIX_KEYRING_PASSWORD') }}" + db_secret: "{{ lookup('env', 'NUCYPHER_FELIX_DB_SECRET') }}" virtualenv_path: '/home/ubuntu/venv' nucypher_network_domain: "{{ lookup('env', 'NUCYPHER_NETWORK_NAME') }}" teacher_uri: "{{ networks[lookup('env', 'NUCYPHER_NETWORK_NAME')][0] }}" + - 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: "Enable and Start Distribution" become: yes become_flags: "-H -S" diff --git a/deploy/ansible/felix/update_felix.yml b/deploy/ansible/felix/update_felix.yml new file mode 100644 index 000000000..0af56b765 --- /dev/null +++ b/deploy/ansible/felix/update_felix.yml @@ -0,0 +1,44 @@ +- 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: + + - git: + repo: "{{ git_repo }}" + dest: ./code + version: "{{ git_version }}" + + - 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: 80 + + - 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: "Enable and Start Distribution" + become: yes + become_flags: "-H -S" + systemd: + daemon_reload: yes + no_block: yes + enabled: yes + state: restarted + name: "felix_faucet" diff --git a/deploy/ansible/geth/files/bootnodes.txt b/deploy/ansible/geth/files/bootnodes.txt index bf9b824ed..6044ab965 100644 --- a/deploy/ansible/geth/files/bootnodes.txt +++ b/deploy/ansible/geth/files/bootnodes.txt @@ -1 +1,6 @@ enode://bf150c793f378775e8cf09bee4fba37ea65363fe7a41171790a80ef6462de619cad2c05f42fc58655ad317503d5da8fee898e911fdf386ac6d15da12b5e883eb@3.92.166.78:30301 +enode://13da3c4b5b1ca32dfb0fcd662b9c69daf6b564e6f791ddae107d57049f25952aac329de336fd393f5b42b6aa2bbb263d7aa5c426b473be611739795aa18b0212@54.173.27.77:30303 +enode://4f7a27820107c235bb0f8086ee1c2bad62174450ec2eec12cb29e3fa7ecb9f332710373c1d11a3115aa72f2dabbae27b73eac51f06d3df558dd9fb51007da653@52.91.112.249:30303 +enode://6b58a9437aa88f254b75110019c54807cf1d7da9729f2c022a2463bae86b639288909fe00ffac0599e616676eea2de3c503bacaf4be835a02195bea0b349ca80@54.88.246.77:30303 +enode://562051180eca42514e44b4428ed20a3cb626654631f53bbfa549de7d3b7e418376e8f784c232429d7ff01bd0597e3ce7327699bb574d39ac3b2ac1729ed0dd44@54.224.110.32:30303 +enode://d372b6a4ebd63a39d55cb9a50fc3c8a95ef0cbb1921da20c7e1de3dbf94a5f82969fe6396140e89bf73b792af291c91446ea8851fe0aae6847e934d8a52b22a4@34.226.198.231:30303 diff --git a/deploy/services/felix_faucet.j2 b/deploy/services/felix_faucet.j2 index d024cfe73..b09b40cc1 100644 --- a/deploy/services/felix_faucet.j2 +++ b/deploy/services/felix_faucet.j2 @@ -2,9 +2,11 @@ Description="Run 'Felix', A NuCypher Test-ERC20 Faucet." [Service] -User=ubuntu +User=root Type=simple -ExecStart={{ virtualenv_path }}/bin/nucypher felix --network {{ nucypher_network_domain }} --geth +Environment="NUCYPHER_KEYRING_PASSWORD={{ keyring_password }}" +Environment="NUCYPHER_FELIX_DB_SECRET={{ db_secret }}" +ExecStart={{ virtualenv_path }}/bin/nucypher --debug felix run --network {{ nucypher_network_domain }} --geth [Install] WantedBy=multi-user.target