pete001 / eos-mainnet

Ansible repo for setting up an EOS RPC API node and syncing to the mainnet
https://eosnode.tools/automation
MIT License
47 stars 12 forks source link

ansible-playbook -v mainnet.yml failed #4

Closed jacktang closed 6 years ago

jacktang commented 6 years ago

Hello,

Thanks for the great tools first:). And ansible-playbook -v eos.yml worked well on my ubuntu

TASK [deploy : link binaries] *****************************************************************************************************
skipping: [47.75.180.158] => (item=nodeos)  => {"changed": false, "item": "nodeos", "skip_reason": "Conditional result was False"}
skipping: [47.75.180.158] => (item=cleos)  => {"changed": false, "item": "cleos", "skip_reason": "Conditional result was False"}
skipping: [47.75.180.158] => (item=keosd)  => {"changed": false, "item": "keosd", "skip_reason": "Conditional result was False"}

...
TASK [deploy : make sure ntp is installed] ****************************************************************************************
ok: [47.75.180.158] => {"cache_update_time": 1538445930, "cache_updated": false, "changed": false}

TASK [deploy : Add user] **********************************************************************************************************
ok: [47.75.180.158] => {"append": false, "changed": false, "comment": ",,,", "group": 1000, "groups": "sudo", "home": "/home/admin", "move_home": false, "name": "admin", "shell": "/bin/bash", "state": "present", "uid": 1000}

PLAY RECAP ************************************************************************************************************************
47.75.180.158              : ok=10   changed=5    unreachable=0    failed=0

And ansible-playbook -v mainnet.yml failed:

10:24 $ ansible-playbook -v mainnet.yml
Using /Users/jacktang/Code/eos-mainnet/ansible.cfg as config file

PLAY [mainnet] ********************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************
ok: [47.75.180.158]

TASK [network : fail] *************************************************************************************************************
skipping: [47.75.180.158] => (item=type)  => {"changed": false, "item": "type", "skip_reason": "Conditional result was False"}

TASK [network : check cleos] ******************************************************************************************************
ok: [47.75.180.158] => {"changed": false, "stat": {"exists": false}}

TASK [network : fail] *************************************************************************************************************
fatal: [47.75.180.158]: FAILED! => {"changed": false, "msg": "This host is missing the EOS binaries"}
    to retry, use: --limit @/Users/jacktang/Code/eos-mainnet/mainnet.retry

PLAY RECAP ************************************************************************************************************************
47.75.180.158              : ok=2    changed=0    unreachable=0    failed=1

What should I do to link the binaries? Thanks!

jacktang commented 6 years ago

Well, I found if I run ansible-playbook -v eos.yml more than once, the build dir would be removed

jacktang commented 6 years ago

I removed /opt/eos and run ansible-playbook -v eos.yml again, still no build dir

pete001 commented 6 years ago

Interesting, do you have the full output of the eos.yml run?

jacktang commented 6 years ago

@pete001 I attached the logging file: play.eos.log

Before run ansible-playbook -v eos.yml, I removed /opt/eos dir. After the building, there is no build dir :(

~$ ls /opt/eos/build -la
ls: cannot access '/opt/eos/build': No such file or directory

And the OS:

cat /etc/issue
Ubuntu 16.04.4 LTS \n \l
pete001 commented 6 years ago

Ok cool - i have just checked in the above branch which should address this issue.

Try on a fresh box,with:

then

jacktang commented 6 years ago

@pete001 what's the "fresh box" meaning? Removing /opt/eos directory is not enough? I checked out the specified branch as you suggested and removed /opt/eos directory, run ansible-playbook eos.yml, and still no /opt/eos/build directory. I attached the logging play.eos.log

pete001 commented 6 years ago

From your log output, it looks as if its installing it into: /srv/data/apps/opt/eos

Have you modified the location within ansible, or do you have some non standard $PATH for the user you are running it with?

I created a fresh cloud node, and ran the eos.yml playbook and can confirm that it installed into /opt/eos/build.

jacktang commented 6 years ago

/opt is the symbolic link which linked to '/srv/data/apps/opt', because the disk space is not enough.

~$ ls -la /
total 88
drwxr-xr-x  21 root root  4096 Oct  1 21:51 .
drwxr-xr-x  21 root root  4096 Oct  1 21:51 ..
drwxr-xr-x   2 root root  4096 Apr  8 21:07 bin
drwxr-xr-x   3 root root  4096 Apr  8 21:07 boot
drwxr-xr-x  20 root root  3880 Oct  1 22:38 dev
drwxr-xr-x  92 root root  4096 Oct  1 21:51 etc
drwxr-xr-x   3 root root  4096 Sep 30 00:59 home
lrwxrwxrwx   1 root root    33 Mar 26  2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx   1 root root    33 Mar 26  2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x  20 root root  4096 Mar 26  2018 lib
drwxr-xr-x   2 root root  4096 Mar 26  2018 lib64
drwx------   2 root root 16384 Mar 26  2018 lost+found
drwxr-xr-x   4 root root  4096 Mar 26  2018 media
drwxr-xr-x   2 root root  4096 Aug  1  2017 mnt
lrwxrwxrwx   1 root root    18 Oct  1 10:40 opt -> /srv/data/apps/opt
dr-xr-xr-x 110 root root     0 Oct  1 21:51 proc
drwx------  11 root root  4096 Oct  1 21:51 root
drwxr-xr-x  21 root root   700 Oct  3 20:32 run
drwxr-xr-x   2 root root 12288 Apr  8 21:07 sbin
drwxr-xr-x   3 root root  4096 Sep 30 01:15 srv
dr-xr-xr-x  13 root root     0 Oct  2 00:06 sys
drwxrwxrwt   8 root root  4096 Oct  3 20:32 tmp
drwxr-xr-x  10 root root  4096 Mar 26  2018 usr
drwxr-xr-x  11 root root  4096 Mar 26  2018 var
lrwxrwxrwx   1 root root    30 Mar 26  2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx   1 root root    30 Mar 26  2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic
pete001 commented 6 years ago

Ok cool, thats why /opt/eos/build does not exist, it will be in /srv/data/apps/opt/eos/build

jacktang commented 6 years ago
$ ls /srv/data/apps/opt/eos/build
ls: cannot access '/srv/data/apps/opt/eos/build': No such file or directory

$ ls /opt/eos/build
ls: cannot access '/opt/eos/build': No such file or directory

I also tried to run ./eosio_build.sh manually, but also failed

/srv/data/apps/opt/eos# ./eosio_build.sh -s EOS

    Beginning build version: 1.2
    Wed Oct  3 12:39:45 UTC 2018
    User: root
    git head id: 8f0f54cf0c15c4d08b60c7de4fd468c5a8b38f2f
    Current branch: HEAD

    ARCHITECTURE: Linux

    OS name: Ubuntu
    OS Version: 16.04
    CPU speed: 2494.222Mhz
    CPU cores: 2
    Physical Memory: 7983 Mgb
    Disk install: /dev/vdb1
    Disk space total: 295G
    Disk space available: 196G

    Checking for installed dependencies.

    Package clang-4.0 found.
    Package lldb-4.0 found.
    Package libclang-4.0-dev found.
    Package cmake found.
    Package make found.
    Package automake found.
    Package libbz2-dev found.
    Package libssl-dev found.
    Package libgmp3-dev found.
    Package autotools-dev found.
    Package build-essential found.
    Package libicu-dev found.
    Package python2.7-dev found.
    Package python3-dev found.
    Package autoconf found.
    Package libtool found.
    Package curl found.
    Package zlib1g-dev found.
    Package doxygen found.
    Package graphviz found.

    No required dpkg dependencies to install.

    Checking boost library installation.
    Boost found at /home/admin/opt/boost.

    Checking MongoDB installation.
    MongoDB configuration found at /home/admin/opt/mongodb/mongod.conf.

    Checking MongoDB C++ driver installation.
    Mongo C++ driver found at /usr/local/lib/libmongocxx-static.a.

    Checking for LLVM with WASM support.
    WASM found at /home/admin/opt/wasm/bin.

>>>>>>>> ALL dependencies sucessfully found or installed . Installing EOSIO

>>>>>>>> CMAKE_BUILD_TYPE=Release
>>>>>>>> ENABLE_COVERAGE_TESTING=false
>>>>>>>> DOXYGEN=false

-- Using custom FindBoost.cmake
-- Boost version: 1.67.0
-- Found the following Boost libraries:
--   thread
--   date_time
--   filesystem
--   system
--   program_options
--   signals
--   serialization
--   chrono
--   unit_test_framework
--   context
--   locale
--   iostreams
-- Configuring EOSIO on Linux
-- binaryen building with -std=c++11
-- binaryen building for platform x86-64
-- binaryen building with -Wall
-- binaryen building with -Werror
-- binaryen building with -Wextra
-- binaryen building with -Wno-unused-parameter
-- binaryen building with -fno-omit-frame-pointer
-- binaryen building with -fPIC
-- binaryen building with -O2
-- binaryen building with -UNDEBUG
-- Using 'EOS' as CORE symbol name
-- Using 'EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV' as public key for 'eosio' account
-- Using WASM clang => /root/opt/wasm/bin/clang
-- Using WASM llc => /root/opt/wasm/bin/llc
-- Using WASM llvm-link => /root/opt/wasm/bin/llvm-link
-- Configuring fc to build on Unix/Apple
-- zlib found
-- Configuring Builtins
-- Configuring SoftFloat
-- Using custom FindBoost.cmake
-- Boost version: 1.67.0
-- Found the following Boost libraries:
--   thread
--   date_time
--   filesystem
--   system
--   chrono
--   unit_test_framework
--   locale
-- Configuring ChainBase on Linux
-- Using custom FindBoost.cmake
-- Boost version: 1.67.0
-- Found the following Boost libraries:
--   thread
--   date_time
--   filesystem
--   system
--   chrono
--   program_options
--   unit_test_framework
--   locale
-- Configuring AppBase on Linux
-- Using prebuilt re2c lexer
-- Found bsoncxx headers: /usr/local/include/bsoncxx/v_noabi
-- Found bsoncxx library: /usr/local/lib/libbsoncxx-static.a;/usr/local/lib/libbson-static-1.0.a;-lc;/usr/lib/x86_64-linux-gnu/librt.so;/usr/lib/x86_64-linux-gnu/libm.so;-pthread
-- Found mongocxx headers: /usr/local/include/mongocxx/v_noabi;/usr/local/include/bsoncxx/v_noabi
-- Found mongocxx library: /usr/local/lib/libmongocxx-static.a;/usr/local/lib/libbsoncxx-static.a;/usr/local/lib/libbson-static-1.0.a;-lc;/usr/lib/x86_64-linux-gnu/librt.so;/usr/lib/x86_64-linux-gnu/libm.so;-pthread;/usr/local/lib/libmongoc-static-1.0.a;/usr/local/lib/libbson-static-1.0.a;-lc;/usr/lib/x86_64-linux-gnu/librt.so;/usr/lib/x86_64-linux-gnu/libm.so;-pthread;/usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so;rt;/usr/lib/x86_64-linux-gnu/libz.so;resolv
-- Git commit revision: 0f6695cb
-- Git commit revision: 0f6695cb
-- Git commit revision: 0f6695cb
-- Configuring done
-- Generating done
-- Build files have been written to: /srv/data/apps/opt/eos
make: *** No targets specified and no makefile found.  Stop.

    >>>>>>>>>>>>>>>>>>>> MAKE building EOSIO has exited with the above error.
pete001 commented 6 years ago

Unfortunately, i have never tried with a symlinked /opt directory, im not sure if this is possible or supported by the EOS package.

Are you able to increase the main volume size and remove the symlink?

jacktang commented 6 years ago

@pete001 yes, I am going to reinstall the os and run the command from the begining. Thanks for your response and help :)

pete001 commented 6 years ago

No problem!

I just pushed an update to master that makes both eos and mainnet install directories configurable.

Good luck with the setup 👍

jacktang commented 6 years ago

@pete001 thanks for the greate improvement. Both work now 👍 I setup the eos-mainnet only want to watch some smart contracts transaction, so I have to edit {mainnet-dir}/config.ini, right? I try to find some ansible configs, but without luck.

pete001 commented 6 years ago

@jacktang ahh great news!!

yes, exactly - update the filter-on values for your contract(s) in roles/network/templates/mainnet/api.j2, then run:

ansible-playbook mainnet.yml --tags=config

and restart the nodeos process.