{"id":36628159,"url":"https://github.com/fujitsu/ism-ansible","last_synced_at":"2026-01-12T09:34:30.490Z","repository":{"id":55854680,"uuid":"112702141","full_name":"fujitsu/ism-ansible","owner":"fujitsu","description":"Ansible Modules and Sample Playbooks for Fujitsu Software Infrastructure Manager","archived":false,"fork":false,"pushed_at":"2021-03-05T04:36:28.000Z","size":248,"stargazers_count":10,"open_issues_count":0,"forks_count":4,"subscribers_count":8,"default_branch":"master","last_synced_at":"2023-02-28T06:23:47.306Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fujitsu.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-01T06:12:40.000Z","updated_at":"2022-12-01T09:39:47.000Z","dependencies_parsed_at":"2022-08-15T07:51:05.660Z","dependency_job_id":null,"html_url":"https://github.com/fujitsu/ism-ansible","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/fujitsu/ism-ansible","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fujitsu%2Fism-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fujitsu%2Fism-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fujitsu%2Fism-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fujitsu%2Fism-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fujitsu","download_url":"https://codeload.github.com/fujitsu/ism-ansible/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fujitsu%2Fism-ansible/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-12T09:34:30.423Z","updated_at":"2026-01-12T09:34:30.480Z","avatar_url":"https://github.com/fujitsu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible Modules for Infrastructure Manager\r\n\r\nThis is the modules to manage Infrastructure Manager using Ansible playbooks.\r\n\r\n## Requirements\r\n\r\n- Ansible Server\r\n  - Ansible 2.4 or later\r\n  - Python  2.6 or later\r\n- FUJITSU Software Infrastructure Manager\r\n  - 2.2.0 or later\r\n\r\n## Examples\r\n\r\nSample playbooks and instructions on how to run the modules can be found in the examples directory.\r\n\r\n## Setup\r\n\r\nTo run the Ansible modules and sample playbooks provided in this project, you should execute the following steps:\r\n\r\n### 1. Clone the repository\r\n\r\nRun on the Ansible Server:\r\n\r\n```shell\r\ncd /etc/ansible\r\ngit clone https://github.com/fujitsu/ism-ansible.git\r\n```\r\n\r\n### 2. Configure the ANSIBLE_LIBRARY environmental variable\r\n\r\nSet the environment variables `ANSIBLE_LIBRARY` and `ANSIBLE_MODULE_UTILS`, `PYTHONPATH`, specifying the library full path from the cloned project.\r\n\r\nRun on the Ansible Server:\r\n\r\n```shell\r\nexport ANSIBLE_LIBRARY=/etc/ansible/ism-ansible/library\r\nexport ANSIBLE_MODULE_UTILS=/etc/ansible/ism-ansible/library/module_utils/\r\nexport PYTHONPATH=$PYTHONPATH:$ANSIBLE_LIBRARY\r\n```\r\n\r\n### 3. Certificate assignment for Infrastructure Manager\r\n\r\nAcquire the certificate used for https communication and assign in the Ansible server.\r\nFor information on how to assign certificates, refer to \"3.1.1 Preparation\" in\r\n\"FUJITSU Software Infrastructure Manager V2.2 REST API Reference Manual\".\r\n\r\n### 4. Setting config file\r\n\r\nSet the account information of Infrastructure Manager for the confg file (`ism_config.json`).\r\nExecute `config_setting.sh` with Ansible server as follows.The config file is created in the current directory when executing it.  \r\nRefer from [[Note1]](#note-1) to [[Note5]](#note-5).\r\n\r\n#### Example\r\n\r\n```shell\r\n$ cd /etc/ansible/ism-ansible/\r\n$ chmod +x ./config_setting.sh\r\n$ ./config_setting.sh\r\n\r\n\u003e Enter IP address or FQDN:\r\n  \u003cIP address\u003e or \u003cFQDN\u003e\r\n\u003e Enter port number:\r\n  \u003cPort No\u003e\r\n\u003e Enter user name:\r\n  \u003cLogin user name\u003e\r\n\u003e Enter password:\r\n  \u003cLogin password\u003e\r\n\u003e Enter full path of certificate file:\r\n  \u003cfull path of certificate file\u003e\r\n\u003e completed\r\n```\r\n\r\nIn each example in the above \u003c \u003e, specify the information of Infrastructure Manager.  \r\nRefer to [[Note6]](#note-6).\r\n\r\nConfirm the config file was created.\r\n\r\n#### Example of execution with IP address\r\n\r\n```shell\r\n$ cat ./ism_config.json\r\n  {\"ip\":\"192.168.1.10\",\"portNo\":\"25566\",\r\n    \"credentials\":{\"userName\":\"administrator\",\r\n    \"password\":\"U2FsdGVkX18iGtLsngKkgWtQQ3+j0s5W1aSTizoWny8=\"},\r\n    \"certificate\": \"/etc/ansible/ism-ansible/certificate.crt\"}\r\n```\r\n\r\nDescribe the path of the config file in playbook.  \r\nRefer to [[Note7]](#note-7) and [[Note8]](#note-8).\r\n\r\n#### Playbook example\r\n\r\n```yaml\r\n- name: Firmware update\r\n  hosts: servers\r\n  connection: local\r\n\r\n  tasks:\r\n   - name: Execution of ism_firmware_update\r\n     ism_firmware_update:\r\n       config: \"/etc/ansible/ism-ansible/ism_config.json\"\r\n```\r\n\r\n### 5. Setting inventory file\r\n\r\nThe inventory file describes the IP address (OS, hardware) and hostname (OS, hardware) of the operation target node.\r\nSpecify the operation target for the inventory file.  \r\nAllocate the inventory file in Ansible server.\r\n\r\n#### INI Format\r\n\r\n```INI\r\n[\u003cHost group name1\u003e]\r\n\u003cOperation target node1\u003e ism_profile_name=\u003cprofile name\u003e\r\n\u003cOperation target node2\u003e ism_node_name=\u003cNode Name\u003e ism_node_type=\u003cNode type\u003e ism_node_model=\u003cModel name\u003e\r\n\u003cOperation target node3\u003e ism_profile_name=\u003cProfile name\u003e ism_computer_name=\u003cComputer name\u003e ism_os_ip_address=\u003cOS IP Address\u003e\r\n\u003cOperation target node4\u003e\r\n...\r\n[\u003cHost group name2\u003e]\r\n\u003cOperation target server\u003e\r\n```\r\n\r\n#### YAML Format\r\n\r\n```YAML\r\nall:\r\n  children:\r\n    \u003cHost group name1\u003e:\r\n      hosts:\r\n        \u003cOperation target node1\u003e:\r\n          ism_profile_name: \u003cProfile name\u003e\r\n        \u003cOperation target node2\u003e:\r\n          ism_node_name: \u003cNode name\u003e\r\n          ism_node_type: \u003cNode type\u003e\r\n          ism_node_model: \u003cModel name\u003e\r\n        \u003cOperation target node3\u003e:\r\n          ism_profile_name: \u003cProfile name\u003e\r\n          ism_computer_name: \u003cComputer name\u003e\r\n          ism_os_ip_address: \u003cOS IP Address\u003e\r\n        \u003cOperation target node4\u003e:\r\n        ...\r\n    \u003cHost group name2\u003e:\r\n      hosts:\r\n        \u003cOperation target server\u003e:\r\n```\r\n\r\n#### Settings\r\n\r\n\u003ctable\u003e\r\n\u003ctbody\u003e\r\n\u003ctr\u003e\r\n  \u003cth\u003eName\u003c/th\u003e\r\n  \u003cth\u003eValue\u003c/th\u003e\r\n  \u003cth\u003eRemarks\u003c/th\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eHost group name\u003c/td\u003e\r\n  \u003ctd\u003eAny host group name\u003c/td\u003e\r\n  \u003ctd\u003eSpecifies an arbitrary host group name.\u003cbr\u003e\r\n      The host group is defined the multiple hosts as one group.\u003cbr\u003e\r\n      In Ansible, the playbook can be executed for the host group unit.\r\n  \u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eOperation target node\u003c/td\u003e\r\n  \u003ctd\u003eOne of the following\u003cbr\u003e\r\n  - IP address\u003cbr\u003e\r\n  - Host name (FQDN)\u003c/td\u003e\r\n  \u003ctd\u003eMultiple specifications are available.\u003cbr\u003e\r\n  Specifies the IP address of the operation target node registered in Infrastructure Manager or the host name (FQDN) for its IP address.\u003cbr\u003eWhen the OS information of the operation target node is registered in Infrastructure Manager, the host name (FQDN) for the IP address of the OS information or the IP address can be specified.\u003cbr\u003e\r\n  \u003ca href=\"#note-9\"\u003e[Note9]\u003c/a\u003e \u003ca href=\"#note-10\"\u003e[Note10]\u003c/a\u003e \u003ca href=\"#note-11\"\u003e[Note11]\u003c/a\u003e\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eProfile name\u003c/td\u003e\r\n  \u003ctd\u003eThe name of the profile to apply to the operation target node.\u003cbr\u003e\r\n  Or, the new profile name when you copy the profile.\u003c/td\u003e\r\n  \u003ctd\u003e\r\n    Optional.\u003cbr\u003e\r\n    Specifies to run the profile assignment, copy profile module.\u003cbr\u003e\r\n    Otherwise, it is ignored.\u003cbr\u003e\r\n    If omitted, no key part (\"ism_profile_name=\", \"ism_profile_name:\") should be specified.\r\n   \u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eOS IP Address\u003c/td\u003e\r\n  \u003ctd\u003eThe OS IP address to specify when copying the profile\u003c/td\u003e\r\n  \u003ctd\u003eOptional.\u003cbr\u003eSpecifies to run the copy profile module.\u003cbr\u003eOtherwise, it is ignored.\u003cbr\u003eIf omitted, no key part (\"ism_os_ip_address=\",\"ism_os_ip_address:\") should be specified.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eComputer name\u003c/td\u003e\r\n  \u003ctd\u003eComputer name to specify when copying the profile\u003c/td\u003e\r\n  \u003ctd\u003eOptional.\u003cbr\u003eSpecifies to run the copy profile module.\u003cbr\u003eOtherwise, it is ignored.\u003cbr\u003eIf omitted, no key part (\"ism_computer_name=\",\"ism_computer_name:\") should be specified.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eOperation target server\u003c/td\u003e\r\n  \u003ctd\u003eOne of the following\u003cbr\u003e\r\n  - IP address\u003cbr\u003e\r\n  - Host name (FQDN)\u003c/td\u003e\r\n  \u003ctd\u003eSpecifies the IP address of the ISM server or the hostname (FQDN) for its IP address.\u003cbr\u003e\r\n      Use this value when performing unique operations with ISM, such as updating downloadable firmware information.\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eNode name\u003c/td\u003e\r\n  \u003ctd\u003eThe name of the node to be registered with the operation target node\u003c/td\u003e\r\n  \u003ctd\u003eOptional.\u003cbr\u003eSpecifies to run the node registration module.\u003cbr\u003eIt is ignored for modules other than node registration.\u003cbr\u003eIf omitted, no key part (\"ism_node_name=\",\"ism_node_name:\") should be specified.\r\n  \u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eNode type\u003c/td\u003e\r\n  \u003ctd\u003eNode type to be registered in the operation target node\u003c/td\u003e\r\n  \u003ctd\u003eOptional\u003cbr\u003eSpecifies to run the node registration module.\u003cbr\u003eIt is ignored for modules other than node registration.\u003cbr\u003eIf omitted, no key part (\"ism_node_type=\",\"ism_node_type:\") should be specified.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eModel name\u003c/td\u003e\r\n  \u003ctd\u003eModel name to be registered in the operation target node\u003c/td\u003e\r\n  \u003ctd\u003eOptional.\u003cbr\u003eSpecifies to run the node registration module.\u003cbr\u003eIt is ignored for modules other than node registration.\u003cbr\u003eIf omitted, no key part (\"ism_node_model=\",\"ism_node_model:\") should be specified.\r\n  \u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\r\n#### Character code\r\n\r\nUTF-8\r\n\r\n#### File Location\r\n\r\nAnywhere on the management server(Ansible).\r\n\r\n#### Example\r\n\r\n- Host group name: servers\r\n  - Operation node1\r\n    - IP address of OS information: 192.168.1.11\r\n    - Profile name: profileA\r\n  - Operation node2\r\n    - Node IP address: 192.168.1.12\r\n  - Operation node3\r\n    - Host name for IP address of OS information: node3-os.test.local\r\n  - Operation node4\r\n    - Host name for IP address of node: node4\r\n  - Operation node5\r\n    - Node IP address: 192.168.1.13\r\n    - Profile name: profileB\r\n    - Computer name: node5\r\n    - Host name for IP address of OS information: 192.168.1.23\r\n- Host group name: ism_server\r\n  - Operation server: 192.168.1.10\r\n\r\n##### INI Format\r\n\r\n```INI\r\n[servers]\r\n192.168.1.11 ism_profile_name=profileA\r\n192.168.1.12 ism_node_name=nodeA ism_node_type=server ism_node_model=\"PRIMERGY RX300S8\"\r\nnode3-os.test.local\r\nnode4\r\n192.168.1.13 ism_profile_name=profileB ism_computer_name=node5 ism_os_ip_address=192.168.1.23\r\n\r\n[ism_server]\r\n192.168.1.10\r\n```\r\n\r\n##### YAML Format\r\n\r\n```YAML\r\nall:\r\n  children:\r\n    servers:\r\n      hosts:\r\n        192.168.1.11:\r\n          ism_profile_name: profileA\r\n        192.168.1.12:\r\n          ism_node_name: node_A\r\n          ism_node_type: server\r\n          ism_node_model: PRIMERGY RX300 S8\r\n        node3-os.test.local:\r\n        node4:\r\n        192.168.1.13:\r\n          ism_profile_name: profileB\r\n          ism_computer_name: node5\r\n          ism_os_ip_address: 192.168.1.23\r\n    ism_server:\r\n      hosts:\r\n        192.168.1.10:\r\n```\r\n\r\n### 6. Modules and license check  \r\n\r\nThe following is a list of modules available and unavailable in Essential.  \r\n\r\n\u003ctable\u003e\r\n\u003ctbody\u003e\r\n\u003ctr\u003e\r\n  \u003cth rowspan=\"2\"\u003eModule name\u003c/th\u003e\r\n  \u003cth colspan=\"2\"\u003eOperation Mode\u003ca href=\"#note-13\"\u003e [Note13]\u003c/a\u003e\u003c/th\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003cth\u003eOther than Essential\u003ca href=\"#note-14\"\u003e [Note14]\u003c/a\u003e\u003c/th\u003e\r\n  \u003cth\u003eEssential\u003c/th\u003e\r\n\u003c/tr\u003e\r\n\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_backup.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_copy_profile.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eNo\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_download_firmware.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_firmware_list.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_firmware_update.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_get_download_firmware_list.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_get_inventory_info.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_get_power_status.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_get_profile_info.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eNo\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_get_report_info.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_maintenance_mode_setting.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_power_on.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_profile_assignment.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eNo\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_refresh_node_info.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eism_retrieve_download_firmware_info.py\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\r\nYes:Available  \r\nNo:Unavailable  \r\n[[Note15]](#note-15)  \r\n\r\n### 7. Playbook execution\r\n\r\nThe following commands are executed with Ansible server.\r\n\r\n```shell\r\nansible-playbook \u003cplaybook file path\u003e -i \u003cinventory file path\u003e\r\n```\r\n\r\n#### Example\r\n\r\nplaybook file path: `/etc/ansible/ism-ansible/examples/ism_firmware_list.yml`  \r\ninventory file path: `/etc/ansible/hosts`  \r\n\r\n```shell\r\nansible-playbook /etc/ansible/ism-ansible/examples/ism_firmware_list.yml -i /etc/ansible/hosts\r\n```\r\n\r\n## Report information comparison tool\r\n\r\nA tool that compares the output files of the report information retrieval module.\r\n\r\n### Deployment path\r\n\r\nBy default, it is placed in the following path:  \r\n\\\u003cDirectory checked out from Git\u003e/ism-ansible/tools/ism_report_diff.py\r\n\r\n### Tool execution command\r\n\r\n```shell\r\npython  ism_report_diff.py \u003cFILE1\u003e [\u003cFILE2\u003e]\r\n```\r\n\r\n### Options\r\n\r\n\u003ctable\u003e\r\n\u003ctbody\u003e\r\n\u003ctr\u003e\r\n  \u003cth\u003eParameter\u003c/th\u003e\r\n  \u003cth align=\"center\"\u003eRequired\u003c/th\u003e\r\n  \u003cth\u003eDescription\u003c/th\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eFILE1\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eYes\u003c/td\u003e\r\n  \u003ctd\u003eSpecifies an old report information file to be compared.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eFILE2\u003c/td\u003e\r\n  \u003ctd align=\"center\"\u003eNo\u003c/td\u003e\r\n  \u003ctd\u003eSpecifies a new report information file to compare with.\u003cbr\u003e\r\nIf this parameter is omitted, FILE1 and FILE2 are not compared and only the information of the file specified in FILE1 is output.\r\n\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\r\n### Examples\r\n\r\n- To compare the old and new report information files\r\n\r\n```shell\r\npython ism_report_diff.py 2019-11-04_14-35-31.json 2019-12-04_09-01-02.json\r\n```\r\n\r\n- To output the information of only FILE1 without comparison\r\n\r\n```shell\r\npython ism_report_diff.py 2019-12-04_09-01-02.json\r\n```\r\n\r\n### Output\r\n\r\n\u003ctable\u003e\r\n\u003ctbody\u003e\r\n\u003ctr\u003e\r\n  \u003cth colspan=\"4\"\u003eName\u003c/th\u003e\r\n  \u003cth\u003eDescription\u003c/th\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"4\"\u003eTotal\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes registered in ISM.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"4\"\u003eDiff\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes added and deleted by comparing the old and new report information files\u003cbr\u003e\r\n  \u003ca href=\"#note-16\"\u003e[Note16]\u003c/a\u003e\r\n\r\nFormat:\u003cbr\u003e\r\n+\u0026lt;Number of adding nodes\u003e, -\u0026lt;Number of deleting nodes\u003e\u003cbr\u003e\r\n\r\nExample: Adding two nodes and deleting one node\u003cbr\u003e\r\n+2, -1\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"4\"\u003eStatus\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes in each status.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd rowspan=\"5\"\u003e\u003c/td\u003e\r\n  \u003ctd colspan=\"3\"\u003eError\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the status is Error.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"3\"\u003eWarning\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the status is Warning.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"3\"\u003eUnknown\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the status is Unknown.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"3\"\u003eUpdating\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the status is Updating.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"3\"\u003eNormal\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the status is Normal.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"4\"\u003eAlarm status\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes in each alarm status\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd rowspan=\"4\"\u003e\u003c/td\u003e\r\n  \u003ctd colspan=\"3\"\u003eError\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the alarm status is Error.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"3\"\u003eWarning\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the alarm status is Warning.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"3\"\u003eInfo\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the alarm status is Info.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"3\"\u003eNormal\u003c/td\u003e\r\n  \u003ctd\u003eNumber of nodes that the alarm status is Normal.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"4\"\u003eAdded node\u003c/td\u003e\r\n  \u003ctd\u003eAdded node information for old and new report information files\u003cbr\u003e\u003ca href=\"#note-16\"\u003e\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd rowspan=\"5\"\u003e\u003c/td\u003e\r\n  \u003ctd colspan=\"3\"\u003eNode \u0026lt;N\u003e\u003c/td\u003e\r\n  \u003ctd\u003eNode Information \u003cbr\u003e\u0026lt;N\u003e is an integer, starting with 1\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"1\" rowspan=\"4\"\u003e\u003c/td\u003e\r\n  \u003ctd colspan=\"2\"\u003eName\u003c/td\u003e\r\n  \u003ctd\u003eNode name\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eType\u003c/td\u003e\r\n  \u003ctd\u003eNode type\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eModel\u003c/td\u003e\r\n  \u003ctd\u003eModel name\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eIP\u003c/td\u003e\r\n  \u003ctd\u003eIP address\u003cbr\u003eDisplays None for nodes that do not have an IP address\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"4\"\u003eFirmware\u003c/td\u003e\r\n  \u003ctd\u003eFirmware Information that can be updated.\u003cbr\u003e\r\n      If there is no firmware that can be updated, it will not be output.\r\n  \u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd rowspan=\"15\"\u003e\u003c/td\u003e\r\n  \u003ctd colspan=\"3\"\u003eNode \u0026lt;N\u003e\u003c/td\u003e\r\n  \u003ctd\u003eNode Information where existing the updatable firmware.\u003cbr\u003e\r\n\u0026lt;N\u003e is an integer, starting with 1\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd rowspan=\"14\"\u003e\u003c/td\u003e\r\n  \u003ctd colspan=\"2\"\u003eName\u003c/td\u003e\r\n  \u003ctd\u003eNode name\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eType\u003c/td\u003e\r\n  \u003ctd\u003eNode type\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eModel\u003c/td\u003e\r\n  \u003ctd\u003eModel name\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eIP\u003c/td\u003e\r\n  \u003ctd\u003eIP address\u003cbr\u003e\r\n  Displays None for nodes that do not have an IP address.\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eFirmware \u0026lt;N\u003e\u003c/td\u003e\r\n  \u003ctd\u003eCurrently applied firmware information.\u003cbr\u003e\r\n\u0026lt;N\u003e is an integer, starting with 1\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd rowspan=\"3\"\u003e\u003c/td\u003e\r\n  \u003ctd\u003eName\u003c/td\u003e\r\n  \u003ctd\u003eFirmware name\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eType\u003c/td\u003e\r\n  \u003ctd\u003eFirmware type\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eVersion\u003c/td\u003e\r\n  \u003ctd\u003eVersion\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd colspan=\"2\"\u003eUpdatable firmware \u0026lt;N\u003e\u003c/td\u003e\r\n  \u003ctd\u003eFirmware information that can be updated\u003cbr\u003e\r\n\u0026lt;N\u003e is an integer, starting with 1\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd rowspan=\"5\"\u003e\u003c/td\u003e\r\n  \u003ctd\u003eName\u003c/td\u003e\r\n  \u003ctd\u003eFirmware Name\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eType\u003c/td\u003e\r\n  \u003ctd\u003eFirmware type\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eVersion\u003c/td\u003e\r\n  \u003ctd\u003eVersion\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eRepositoryName\u003c/td\u003e\r\n  \u003ctd\u003eRepository\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003ctr\u003e\r\n  \u003ctd\u003eOperationMode\u003c/td\u003e\r\n  \u003ctd\u003eSupported mode\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003c/tbody\u003e\r\n\u003c/table\u003e\r\n\r\n### Notes\r\n\r\n- Sample playbook using ism_report_diff.py  \r\n  [examples/ism_diff_report.yml](/examples/ism_diff_report.yml)\r\n\r\n## Changing processing time of Update Firmware and Profile Assignment settings\r\n\r\nIn the module of Update Firmware or Profile Assignment, waiting to complete the task in the internal processing.  \r\nThe timeout period for the process of waiting to complete the task can be changed with the following ism_user_settings file.  \r\nRefer to [[Note12]](#note-12).\r\n\r\nism_user_settings file path: `/etc/ansible/ism-ansible/module_utils/ism_user_settings.py`  \r\n\r\n### Example\r\n\r\nTimeout period of firmware update: `14400` (second) (= 4hours)  \r\nTimeout period of application of profile: `18000` (second) (= 5hours)\r\n\r\n```python\r\n#!/usr/bin/python\r\n#coding: UTF-8\r\n\r\n# user_settings_value\r\n\r\n'''\r\nSet time confirmation for task confirmation\r\n'''\r\nFIRMWARE_UPDATE_TIME_OUT = 14400\r\n\r\nPROFILE_ASSIGNMENT_TIME_OUT = 18000\r\n```\r\n\r\n## Notes\r\n\r\n\u003ca name=\"note-1\"\u003e[Note1]  \r\nWhen the config file already exists, it will be overwritten.\r\n\r\n\u003ca name=\"note-2\"\u003e[Note2]  \r\nSpecify the input values in single-byte upper-case, lower-case alphabetic letters, numbers, and symbols.\r\n\r\n\u003ca name=\"note-3\"\u003e[Note3]  \r\nWhen re-setting by changing the input information, make sure that the playbook and module are stopped, and that the proper procedure is executed again.\r\n\r\n\u003ca name=\"note-4\"\u003e[Note4]  \r\nWhen FQDN is used for the connection with Infrastructure Manager, confirm beforehand whether FQDN of Infrastructure Manager is available for name resolution on the Ansible server.\r\n\r\n\u003ca name=\"note-5\"\u003e[Note5]  \r\nPresently IPv6 is not supported. For the connection with Infrastructure Manager, specify the IP address of IPv4 or host name (FQDN) that are available for name resolution of IPv4.\r\n\r\n\u003ca name=\"note-6\"\u003e[Note6]  \r\nIf the following error occurs when FQDN of Infrastructure Manager is specified with `config_setting.sh`, name resolution of FQDN of Infrastructure Manager has failed on the Ansible server. Ensure the action for name resolution and re-execute.\r\n\r\nExample (For FQDN ism.test.local):\r\n\r\n```shell\r\n$ ./ism-ansible/config_setting.sh\r\nEnter IP address or FQDN:\r\nism.test.local\r\nTraceback (most recent call last):\r\n  File \"\u003cstring\u003e\", line 1, in \u003cmodule\u003e\r\nsocket.gaierror: [Errno -2] Name or service not known\r\n```\r\n\r\n\u003ca name=\"note-7\"\u003e[Note7]  \r\nSpecify the config path in single-byte upper-case, lower-case alphabetic letters, numbers and symbols.\r\n\r\n\u003ca name=\"note-8\"\u003e[Note8]  \r\nAnsible Modules for Infrastructure Manager is executed on the Ansible server. Therefore, the specification for \"Connection: local\" of the playbook is mandatory.\r\n\r\n\u003ca name=\"note-9\"\u003e[Note9]  \r\nPresently IPv6 is not supported. Specify the IP address of IPv4 or host name (FQDN) that are available for name resolution of IPv4.\r\n\r\n\u003ca name=\"note-10\"\u003e[Note10]  \r\nWhen the host name (FQDN) is specified, confirm beforehand whether the host name (FQDN) is available for name resolution on the Ansible server is confirmed.\r\n\r\n\u003ca name=\"note-11\"\u003e[Note11]  \r\nWhen operating the node registration module, specify the target server to operate by specifying the IP or host name (FQDN) of iRMC.\r\n\r\n\u003ca name=\"note-12\"\u003e[Note12]  \r\nSince the time-out time of 10800(second)(For = three hours), which sufficient for waiting for the task to complete, is specified in the default setting, it is not normally required to be changed.\r\n\r\n\u003ca name=\"note-13\"\u003e[Note13]  \r\nThis is the \"Operation Mode\" value output by \"ismadm license show\" command.\r\n\r\n\u003ca name=\"note-14\"\u003e[Note14]  \r\nThe \"Operation Mode\" other than Essential are as follows.  \r\n\r\n- Advanced  \r\n- Advanced (Trial)  \r\n- Advanced for PRIMEFLEX  \r\n- Advanced for PRIMEFLEX (Trial)  \r\n- NFLEX  \r\n- NFLEX (Trial)  \r\n\r\n\u003ca name=\"note-15\"\u003e[Note15]  \r\nThe following error is output when executing an unavailable module.  \r\n`This module is not supported on Essential mode.`\r\n\r\n\u003ca name=\"note-16\"\u003e[Note16]  \r\nOutput only if FILE2 is specified as a tool option.\r\n\r\n## Software support\r\n\r\nThe software in this project is not supported.\r\n\r\n## License\r\n\r\nThis project is licensed under the GPL v3 license. See the [LICENSE](LICENSE) for more information.\r\n\r\n## Copyright\r\n\r\nCopyright FUJITSU LIMITED 2017-2020\r\n\r\n## API\r\n\r\n- FUJITSU Software Infrastructure Manager REST API Reference Manual  \r\n\u003chttp://www.fujitsu.com/jp/products/software/infrastructure-software/infrastructure-software/serverviewism/technical/\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffujitsu%2Fism-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffujitsu%2Fism-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffujitsu%2Fism-ansible/lists"}