Coder Social home page Coder Social logo

Comments (17)

chillancezen avatar chillancezen commented on July 21, 2024

hi @razikhussein ,

could you please try httpapi for you device using inline hosts and test.yml playbook?

$cat hosts
[fortigates]
fortigate01 ansible_host=10.208.33.142 ansible_user="mano1" ansible_password="mano@9930@no1"

[fortigates:vars]
ansible_network_os=fortinet.fortios.fortios
$cat test.yml
- hosts: fortigate01
  connection: httpapi
  collections:
  - fortinet.fortios
  vars:
   host: "10.208.33.142"
   username: "mano1"
   password: "mano@9930@no1"
   vdom: "root"
   ssl_verify: "False"
  tasks:
  - name: Configure global attributes.
    fortios_system_global:
      vdom:  "{{ vdom }}"
      system_global:
        admintimeout: "23"
        hostname: "FortiGate02"

and run the playbook:

ansible-playbook -i hosts test.yml

thanks,
Link

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Hi @chillancezen

The hosts file , where that should be? Is it the etc/hosts file?

from ansible-galaxy-fortios-collection.

chillancezen avatar chillancezen commented on July 21, 2024

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

[razik@almdevrm lifecycle]$ ansible-playbook TestFortinet.yml
[WARNING]: No inventory was parsed, only implicit localhost is available

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

[WARNING]: Could not match supplied host pattern, ignoring: fortigate01

PLAY [fortigate01] ***********************************************************************************************************
skipping: no hosts matched

PLAY RECAP *******************************************************************************************************************

[razik@almdevrm lifecycle]$ ls hosts
hosts
[razik@almdevrm lifecycle]$ ls TestFortinet.yml
TestFortinet.yml

[razik@almdevrm lifecycle]$ cat hosts
[fortigates]
fortigate01 ansible_host=10.10.10.10 ansible_user="username" ansible_password="password"

[fortigates:vars]
ansible_network_os=fortinet.fortios.fortios

[razik@almdevrm lifecycle]$ cat TestFortinet.yml

  • hosts: fortigate01
    connection: httpapi
    collections:
    • fortinet.fortios
      vars:
      host: "10.10.10.10"
      username: "username"
      password: "password"
      vdom: "root"
      ssl_verify: "False"
      tasks:
    • name: Configure global attributes.
      fortios_system_global:
      vdom: "{{ vdom }}"
      system_global:
      admintimeout: "23"
      hostname: "GvFW-RZK"

from ansible-galaxy-fortios-collection.

chillancezen avatar chillancezen commented on July 21, 2024

[razik@almdevrm lifecycle]$ ansible-playbook TestFortinet.yml
[WARNING]: No inventory was parsed, only implicit localhost is available

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

[WARNING]: Could not match supplied host pattern, ignoring: fortigate01

PLAY [fortigate01] ***********************************************************************************************************
skipping: no hosts matched

PLAY RECAP *******************************************************************************************************************

[razik@almdevrm lifecycle]$ ls hosts
hosts
[razik@almdevrm lifecycle]$ ls TestFortinet.yml
TestFortinet.yml

[razik@almdevrm lifecycle]$ cat hosts
[fortigates]
fortigate01 ansible_host=10.10.10.10 ansible_user="username" ansible_password="password"

[fortigates:vars]
ansible_network_os=fortinet.fortios.fortios

[razik@almdevrm lifecycle]$ cat TestFortinet.yml

  • hosts: fortigate01
    connection: httpapi
    collections:

    • fortinet.fortios
      vars:
      host: "10.10.10.10"
      username: "username"
      password: "password"
      vdom: "root"
      ssl_verify: "False"
      tasks:
    • name: Configure global attributes.
      fortios_system_global:
      vdom: "{{ vdom }}"
      system_global:
      admintimeout: "23"
      hostname: "GvFW-RZK"

ansible-playbook -i hosts TestFortinet.yml

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Sorry. I missed that earlier.
And sorry for asking too many question.

I'm getting the SSL certificate issue as below. This is despite have ssl_verify="False" set.
I got the same issue with fortiosapi 1.0.1 earlier.

The full traceback is:
Traceback (most recent call last):
File "/home/razik/.ansible/tmp/ansible-local-19653uq4iv545/ansible-tmp-1589088586.802096-264903047448662/AnsiballZ_fortios_system_global.py", line 102, in
_ansiballz_main()
File "/home/razik/.ansible/tmp/ansible-local-19653uq4iv545/ansible-tmp-1589088586.802096-264903047448662/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/razik/.ansible/tmp/ansible-local-19653uq4iv545/ansible-tmp-1589088586.802096-264903047448662/AnsiballZ_fortios_system_global.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)
File "/usr/lib64/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 120, in schema
File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible/module_utils/connection.py", line 185, in rpc
ansible.module_utils.connection.ConnectionError: Could not connect to http://10.208.33.142:80/logincheck: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)

fatal: [fortigate01]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File "/home/razik/.ansible/tmp/ansible-local-19653uq4iv545/ansible-tmp-1589088586.802096-264903047448662/AnsiballZ_fortios_system_global.py", line 102, in \n _ansiballz_main()\n File "/home/razik/.ansible/tmp/ansible-local-19653uq4iv545/ansible-tmp-1589088586.802096-264903047448662/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/home/razik/.ansible/tmp/ansible-local-19653uq4iv545/ansible-tmp-1589088586.802096-264903047448662/AnsiballZ_fortios_system_global.py", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)\n File "/usr/lib64/python2.7/runpy.py", line 176, in run_module\n fname, loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code\n exec code in run_globals\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in \n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 120, in schema\n File "/tmp/ansible_fortios_system_global_payload_C4a7L9/ansible_fortios_system_global_payload.zip/ansible/module_utils/connection.py", line 185, in rpc\nansible.module_utils.connection.ConnectionError: Could not connect to http://10.208.33.142:80/logincheck: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}

PLAY RECAP *******************************************************************************************************************
fortigate01 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

from ansible-galaxy-fortios-collection.

chillancezen avatar chillancezen commented on July 21, 2024

@razikhussein it's OK.

httpapi is preferred than fortiosapi.

in your case you should not specify ssl_verify, instead you should use ansible_ prefixed variables which is internally processed by Ansible httpapi.

if you enabled https in your fgt device.

$cat test.yml
- hosts: fortigate01
  connection: httpapi
  collections:
  - fortinet.fortios
  vars:
   vdom: "root"
   ansible_httpapi_use_ssl: yes
   ansible_httpapi_validate_certs: no
   ansible_httpapi_port: 443
  tasks:
  - name: Configure global attributes.
    fortios_system_global:
      vdom:  "{{ vdom }}"
      system_global:
        admintimeout: "23"
        hostname: "FortiGate02"

thanks,
Link

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Thanks a lot.

I'm using python 3.6, But I see in the error below, its referring to python 2.7. Is that what causing JSON issue?

TASK [Configure global attributes.] ******************************************************************************************
task path: /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/TestFortinet.yml:16
<10.208.33.142> ESTABLISH LOCAL CONNECTION FOR USER: razik
<10.208.33.142> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278" && echo ansible-tmp-1589162819.7994592-178661504931278="echo /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278" ) && sleep 0'
Using module file /home/razik/.ansible/collections/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py
<10.208.33.142> PUT /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/tmpkitsk8ov TO /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py
<10.208.33.142> EXEC /bin/sh -c 'chmod u+x /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/ /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c '/usr/bin/python /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c 'rm -f -r /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 102, in
_ansiballz_main()
File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)
File "/usr/lib64/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 128, in schema
File "/usr/lib64/python2.7/json/init.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

fatal: [fortigate01]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 102, in \n _ansiballz_main()\n File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)\n File "/usr/lib64/python2.7/runpy.py", line 176, in run_module\n fname, loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code\n exec code in run_globals\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in \n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 128, in schema\n File "/usr/lib64/python2.7/json/init.py", line 338, in loads\n return _default_decoder.decode(s)\n File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode\n raise ValueError("No JSON object could be decoded")\nValueError: No JSON object could be decoded\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}

PLAY RECAP *******************************************************************************************************************
fortigate01 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

from ansible-galaxy-fortios-collection.

chillancezen avatar chillancezen commented on July 21, 2024

Thanks a lot.

I'm using python 3.6, But I see in the error below, its referring to python 2.7. Is that what causing JSON issue?

TASK [Configure global attributes.] ******************************************************************************************
task path: /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/TestFortinet.yml:16
<10.208.33.142> ESTABLISH LOCAL CONNECTION FOR USER: razik
<10.208.33.142> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278" && echo ansible-tmp-1589162819.7994592-178661504931278="echo /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278" ) && sleep 0'
Using module file /home/razik/.ansible/collections/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py
<10.208.33.142> PUT /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/tmpkitsk8ov TO /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py
<10.208.33.142> EXEC /bin/sh -c 'chmod u+x /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/ /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c '/usr/bin/python /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c 'rm -f -r /home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 102, in
_ansiballz_main()
File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)
File "/usr/lib64/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname
File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 128, in schema
File "/usr/lib64/python2.7/json/init.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

fatal: [fortigate01]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 102, in \n _ansiballz_main()\n File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/home/razik/.ansible/tmp/ansible-local-11300qiuxbyfj/ansible-tmp-1589162819.7994592-178661504931278/AnsiballZ_fortios_system_global.py", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)\n File "/usr/lib64/python2.7/runpy.py", line 176, in run_module\n fname, loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code\n exec code in run_globals\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in \n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname\n File "/tmp/ansible_fortios_system_global_payload_UVDjlD/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 128, in schema\n File "/usr/lib64/python2.7/json/init.py", line 338, in loads\n return _default_decoder.decode(s)\n File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode\n raise ValueError("No JSON object could be decoded")\nValueError: No JSON object could be decoded\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}

PLAY RECAP *******************************************************************************************************************
fortigate01 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

Oh I see, you are not actually using Python3 to run Ansible.

please reinstall your Ansible base in Python3:

#pip uninstall ansible
#pip3 install ansible==2.9.5

you should see the following output with Python3:

$ansible-playbook --version
ansible-playbook 2.9.0
  config file = None
  configured module search path = ['/home/linky/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/linky/.local/lib/python3.7/site-packages/ansible
  executable location = /home/linky/.local/bin/ansible-playbook
  python version = 3.7.3 (default, Oct  7 2019, 12:56:13) [GCC 8.3.0]

if you can not find pip3 command, you should use your package installer to install pip3 first.

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Thats the weird thing. I actually have python 3.6.8. But I dont know why its throwing this errro

[razik@almdevrm lifecycle]$ ansible-playbook --version
ansible-playbook 2.9.2
config file = None
configured module search path = ['/home/razik/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
executable location = /usr/local/bin/ansible-playbook
python version = 3.6.8 (default, Apr 25 2019, 21:02:35) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

from ansible-galaxy-fortios-collection.

chillancezen avatar chillancezen commented on July 21, 2024

could you try with a virtual env?

#python3 -m venv sandbox
#source sandbox/bin/activate
#pip3 install ansible==2.9.5
#ansible-playbook --version 
##Make sure ansible==2.9.5 is in the output
## and Then run your playbook.

thanks,
Link

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Similar error unfortunately

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Hi,

I updated the code a bit, to no ssl and https.
But its throwing wrong credential error
But when I log in manually, it worked fine. Any suggestion?

[razik@almdevrm lifecycle]$ cat hosts
[fortigates]
fortigate01 ansible_host=10.10.10.10 ansible_user="user1" ansible_password="password1" ansible_httpapi_pass="password1" ansible_httpapi_password="password1"

[fortigates:vars]
ansible_network_os=fortinet.fortios.fortios

[razik@almdevrm lifecycle]$ cat TestFortinet.yml

  • hosts: fortigate01
    connection: httpapi
    collections:
    • fortinet.fortios
      vars:
      host: "{{ ansible_host }}"
      username: "{{ ansible_user }}"
      password: "{{ ansible_password }}"
      vdom: "root"
      ansible_httpapi_use_ssl: no
      ansible_httpapi_validate_certs: no
      ansible_httpapi_port: 80
      tasks:
    • name: Configure global attributes
      fortios_system_global:
      vdom: "{{ vdom }}"
      system_global:
      admintimeout: "23"
      hostname: "GvFW-RZK"

[razik@almdevrm lifecycle]$ ansible-playbook -i hosts TestFortinet.yml -vvv
ansible-playbook 2.9.2
config file = None
configured module search path = ['/home/razik/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
executable location = /usr/local/bin/ansible-playbook
python version = 3.6.8 (default, Apr 25 2019, 21:02:35) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
No config file found; using defaults
host_list declined parsing /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/hosts as it did not pass its verify_file() method
script declined parsing /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/hosts as it did not pass its verify_file() method
auto declined parsing /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/hosts as it did not pass its verify_file() method
Parsed /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/hosts inventory source with ini plugin

PLAYBOOK: TestFortinet.yml ***************************************************************************************************
1 plays in TestFortinet.yml

PLAY [fortigate01] ***********************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************
task path: /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/TestFortinet.yml:2
<10.208.33.142> ESTABLISH LOCAL CONNECTION FOR USER: razik
<10.208.33.142> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585984.2257547-229589089586204" && echo ansible-tmp-1589585984.2257547-229589089586204="echo /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585984.2257547-229589089586204" ) && sleep 0'
Attempting python interpreter discovery
<10.208.33.142> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'python3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; command -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '"'"'python'"'"'; echo ENDFOUND && sleep 0'
<10.208.33.142> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
Using module file /usr/local/lib/python3.6/site-packages/ansible/modules/system/setup.py
<10.208.33.142> PUT /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/tmpv0e8naaf TO /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585984.2257547-229589089586204/AnsiballZ_setup.py
<10.208.33.142> EXEC /bin/sh -c 'chmod u+x /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585984.2257547-229589089586204/ /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585984.2257547-229589089586204/AnsiballZ_setup.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c '/usr/bin/python /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585984.2257547-229589089586204/AnsiballZ_setup.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c 'rm -f -r /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585984.2257547-229589089586204/ > /dev/null 2>&1 && sleep 0'
ok: [fortigate01]
META: ran handlers

TASK [Configure global attributes] *******************************************************************************************
task path: /home/razik/vnf-fortigate-vfw/vnf-fortigate-vfw/VNFCs/fortigate_vfw/lifecycle/TestFortinet.yml:15
<10.208.33.142> ESTABLISH LOCAL CONNECTION FOR USER: razik
<10.208.33.142> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560" && echo ansible-tmp-1589585988.4850385-71631796368560="echo /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560" ) && sleep 0'
Using module file /home/razik/.ansible/collections/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py
<10.208.33.142> PUT /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/tmp58bvrjc8 TO /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py
<10.208.33.142> EXEC /bin/sh -c 'chmod u+x /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/ /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c '/usr/bin/python /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py && sleep 0'
<10.208.33.142> EXEC /bin/sh -c 'rm -f -r /home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py", line 102, in
_ansiballz_main()
File "/home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)
File "/usr/lib64/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 120, in schema
File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible/module_utils/connection.py", line 185, in rpc
ansible.module_utils.connection.ConnectionError: Wrong credentials. Please check

fatal: [fortigate01]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File "/home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py", line 102, in \n _ansiballz_main()\n File "/home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File "/home/razik/.ansible/tmp/ansible-local-12305z73jc6pn/ansible-tmp-1589585988.4850385-71631796368560/AnsiballZ_fortios_system_global.py", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.fortinet.fortios.plugins.modules.fortios_system_global', init_globals=None, run_name='main', alter_sys=True)\n File "/usr/lib64/python2.7/runpy.py", line 176, in run_module\n fname, loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code\n exec code in run_globals\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1994, in \n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1972, in main\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1623, in fortios_system\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/modules/fortios_system_global.py", line 1612, in system_global\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 167, in set\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 140, in get_mkey\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 131, in get_mkeyname\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible_collections/fortinet/fortios/plugins/module_utils/fortios/fortios.py", line 120, in schema\n File "/tmp/ansible_fortios_system_global_payload_eUCEYT/ansible_fortios_system_global_payload.zip/ansible/module_utils/connection.py", line 185, in rpc\nansible.module_utils.connection.ConnectionError: Wrong credentials. Please check\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}

PLAY RECAP *******************************************************************************************************************
fortigate01 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=

from ansible-galaxy-fortios-collection.

chillancezen avatar chillancezen commented on July 21, 2024

@razikhussein
does your fortigated enable https(with a valid licence)?
if so, you must define variables:

   ansible_httpapi_use_ssl: yes
   ansible_httpapi_validate_certs: no
   ansible_httpapi_port: 443

otherwise, you can see error: wrong credentials.
because http is redirected to https by default.

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Its an unlicensed instance with no https

Thats why I used and port 80

from ansible-galaxy-fortios-collection.

razikhussein avatar razikhussein commented on July 21, 2024

Hi,

Just wanted to update.
We received the license and I applied it to the instance.
And then using the following configuration, the playbook run successfully. Finally. Thanks a lot for your help.

ansible_httpapi_use_ssl: yes
ansible_httpapi_validate_certs: no
ansible_httpapi_port: 443

from ansible-galaxy-fortios-collection.

chillancezen avatar chillancezen commented on July 21, 2024

Hi,

Just wanted to update.
We received the license and I applied it to the instance.
And then using the following configuration, the playbook run successfully. Finally. Thanks a lot for your help.

ansible_httpapi_use_ssl: yes
ansible_httpapi_validate_certs: no
ansible_httpapi_port: 443

close as per this.

Thanks,

from ansible-galaxy-fortios-collection.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.