Can I use some kind of script to create image and ghost my lab machines



  • Server
    • FOG Version: Latest
    • OS: Centos7
    Client
    • Service Version: What is this?
    • OS: Windows 10
    Description

    I’m using trying to use fog for test automation with Jenkins

    1. So I need a way to ghost machines using a Jenkins job (using some script such as python, bash or batch script).
    2. Secondly I need to create a new image of the current host by running some script in the host. (first I install my product, create image and ghost other machines to reduce the installation failures).

    Someone achieve point 1 and 2, appreciate you assist
    Thank you!



  • This post is deleted!




  • Hi @wayne-workman
    When I use your example to Get task status of host ID 1,
    I always receive status of all hosts, but not the particular one.
    Could you help here?
    I’m on 1.4.4
    regards



  • @andrewg78 Maybe you install Insomnia and work-through the request there first?



  • @Tom-Elliott
    Actually I tried your suggestion and have some issue.
    curl -vvv --header “Content-Type: application/json” --header “fog-api-token: <my_token>” --header “fog-user-token:<my_token>” -X POST --data ‘{“taskTypeID”: 8}’ http://<IP>/fog/group/3/task

    • upload completely sent off: 13 out of 13 bytes
      < HTTP/1.1 501 Not Implemented
      < Date: Thu, 14 Sep 2017 07:59:06 GMT
      < Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.31
      < X-Powered-By: PHP/5.6.31
      < X-Frame-Options: sameorigin
      < X-XSS-Protection: 1; mode=block
      < X-Content-Type-Options: nosniff
      < Strict-Transport-Security: max-age=31536000
      < Content-Security-Policy: default-src ‘none’;script-src ‘self’ ‘unsafe-eval’;co
      nnect-src ‘self’;img-src ‘self’ data:;style-src ‘self’ ‘unsafe-inline’;font-src
      ’self’;
      < Access-Control-Allow-Origin: *
      < Content-Length: 42
      < Connection: close
      < Content-Type: application/json
      <
      { “error”: “Invalid tasking type passed”
      }* Closing connection 0

    but GET method works perfectly
    curl --header “Content-Type: application/json” --header “fog-api-token: <my_token>” --header “fog-user-token: <my_token>” --data ‘{“hostID”:13}’ -X GET http://<IP>/fog/task/active

    • upload completely sent off: 13 out of 13 bytes
      < HTTP/1.1 200 OK
      < Date: Thu, 14 Sep 2017 08:02:15 GMT
      < Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.31
      < X-Powered-By: PHP/5.6.31
      < X-Frame-Options: sameorigin
      < X-XSS-Protection: 1; mode=block
      < X-Content-Type-Options: nosniff
      < Strict-Transport-Security: max-age=31536000
      < Content-Security-Policy: default-src ‘none’;script-src ‘self’ ‘unsafe-eval’;co
      nnect-src ‘self’;img-src ‘self’ data:;style-src ‘self’ ‘unsafe-inline’;font-src
      ’self’;
      < Access-Control-Allow-Origin: *
      < Content-Length: 27
      < Connection: close
      < Content-Type: application/json
      <
      { “count”: 0, “tasks”: []
      }* Closing connection 0

  • Senior Developer

    @andrewg78 Why don’t you try what I suggested?

    curl -vvv -H 'Content-Type: application/json' -H 'fog-api-token: <my_token>' -H 'fog-user-token: <my_token>' http://<IP>/fog/group/3/task -X POST --data '{"taskTypeID": 8}'



  • I have three groups. I wanted to process group ID==3

    curl -vvv --header “Content-Type: application/json” --header “fog-api-token: <my_token>” --header “fog-user-token:<my_token>” -X POST http://<IP>/fog/group/3/multicastsession

    < HTTP/1.1 501 Not Implemented
    < Date: Tue, 12 Sep 2017 11:25:28 GMT
    < Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.31
    < X-Powered-By: PHP/5.6.31
    < X-Frame-Options: sameorigin
    < X-XSS-Protection: 1; mode=block
    < X-Content-Type-Options: nosniff
    < Strict-Transport-Security: max-age=31536000
    < Content-Security-Policy: default-src ‘none’;script-src ‘self’ ‘unsafe-eval’;co
    nnect-src ‘self’;img-src ‘self’ data:;style-src ‘self’ ‘unsafe-inline’;font-src
    ’self’;
    < Access-Control-Allow-Origin: *
    < Content-Length: 0
    < Connection: close
    < Content-Type: application/json
    <

    • Closing connection 0

  • Senior Developer

    @andrewg78 I don’t think you need the --data '{"taskTypeID": 8}' though it shouldn’t really matter. Is there any return output from the command losing teh --silent component should show you what’s going on more directly.

    Something like:

    curl -vvv -H 'Content-Type: application/json' -H 'fog-api-token: <my_token>' -H 'fog-user-token: <my_token>' http://<IP>/fog/group/3/task -X POST --data '{"taskTypeID": 8}'



  • @andrewg78 Yes, please check the apache error logs. The command I posted did work on my home fog server.


  • Developer

    @AndrewG78 Anything you see in the apache error logs when running the curl command?



  • @Wayne-Workman
    Thx, I’ve tried this, and there is no any action :(
    I have no error but task is not being created.
    curl --header “Content-Type: application/json” --header “fog-api-token: <my_token>” --header “fog-user-token: <my_token>” --data ‘{“taskTypeID”:8}’ -X POST http://<IP>/fog/group/3/multicastsession



  • @andrewg78 The API supports multicast. The documentation here shows us how: https://news.fogproject.org/simplified-api-documentation/

    You must specify multicastsession as the task type. This is how:

    curl --silent -k -H 'Content-Type: application/json' -H 'fog-user-token: NTcwZTkwYzA5ZDE5NGI0ZTQ3NDgzYzE5ZmM5YWZiZjU5YmZjNjcxMzhiODNlMDczNTlhMWNiNjIxNDVlYmM4ZmZjMGVlOTFiNmUzNzFkNjY5ZmFjNzViMjRiNmJiNWNlM2JiYTM3ZDIxNzk3N2Y3YmM5N2JkM2U4ODZhODdmZjk=' -H 'fog-api-token: M2JhM2ViZmJhZDM1MmQ1MTU4NTNjMTNmZjY4YTY3MGUxMTZmNzgyMmQxYzlhOWMwMmRjMTg0NWNmYTE4MmZiY2FkNjFjYzY1ZjY5NGQ4ZTE1Yjk4ZTg5NTQ0YTBiYmIwYzFjYmFiNTFiYzkwZTQ0YzI5MzFlNWM0NzhmMzEyNTk=' http://10.0.0.28/fog/group/1/multicastsession
    


  • @Wayne-Workman Hi, thx but " " are needed. I think they depends on the curl version(I’m on WIndows). Without “equals” I got “can not resolve host” error. Moreover, my command gets proper response from the server that tasking type is invalid. I assume API does not support multicast yet. Please confirm that. If you have something not committed to repo yet, please do commit it, as I can test it. Doing CI integration through Jenkins now



  • @andrewg78 The tokens should not have an “equals” symbol added. My examples have an equals at the end because that was coincidentally part of the token. So if you’re adding an equals, remove that.

    And you’re missing this header: -H 'Content-Type: application/json'


  • Moderator

    @Wayne-Workman any ideas since you have been working with the API more than most?



  • May u please validate my curl command?
    I keep getting same error as I mentioned few months ago.
    {
    “error”: “Invalid tasking type passed”
    }

    I’m trying to task multicast process.

    curl --header “fog-api-token: <token>=” --header “fog-user-token: <token>=” --data ‘{“taskTypeID”:8}’ -X POST http://<IP>/fog/group/2/task


  • Moderator

    @andrewg78 There were some tweaks to the API between 1.4.2 and 1.4.4, but I can’t tell you off the top of my head. You would be better to move to 1.4.4 anyway outside of the API stuff. There were some issues with 1.4.2 that was address in 1.4.3 and finally in 1.4.4.

    The developers are still on holiday, but let me see if I can ping one of them to kickstart the news server.



  • @george1421 Thank you. I have 1.4.2 . Do you maybe know if there are some changes in API between my version and 1.4.4 ?
    https://news.fogproject.org/fog-1-4-4-officially-released/ keeps popping out 502 error


  • Moderator

    @andrewg78 AFAIK no changes have been made to the API since 1.4.4 was released. The 1.5.0 branch has a few minor bug fixes, but was mainly focused on the new web gui.


 

430
Online

41.8k
Users

12.3k
Topics

116.0k
Posts