irods installation on centos7:

# rpm --import https://packages.irods.org/irods-signing-key.asc
# wget -qO - https://packages.irods.org/renci-irods.yum.repo | sudo tee /etc/yum.repos.d/renci-irods.yum.repo

# yum install irods-server irods-database-plugin-postgres


# yum install postgresql-server

# postgresql-setup initdb
Initializing database ... OK

# systemctl start postgresql

# su - postgres
Last login: Fri Oct 26 11:30:44 CEST 2018 on pts/0

$ psql
psql (9.2.24)
Type "help" for help.

postgres=# CREATE USER irods WITH PASSWORD 'ir0ds';
CREATE ROLE
postgres=# CREATE DATABASE "ICAT";
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE "ICAT" TO irods;
GRANT
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 ICAT      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres         +
           |          |          |             |             | postgres=CTc/postgres+
           |          |          |             |             | irods=CTc/postgres
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)


# python /var/lib/irods/scripts/setup_irods.py 
The iRODS service account name needs to be defined.
iRODS user [irods]: 
iRODS group [irods]: 

+--------------------------------+
| Setting up the service account |
+--------------------------------+

Existing Group Detected: irods
Existing Account Detected: irods
Setting owner of /var/lib/irods to irods:irods
Setting owner of /etc/irods to irods:irods
iRODS server's role:
1. provider
2. consumer
Please select a number or choose 0 to enter a new value [1]: 
Updating /etc/irods/server_config.json...

+-----------------------------------------+
| Configuring the database communications |
+-----------------------------------------+

You are configuring an iRODS database plugin. The iRODS server cannot be started until its database has been properly configured.

ODBC driver for postgres [PostgreSQL]: 
Database server's hostname or IP address [localhost]: 
Database server's port [5432]: 
Database name [ICAT]: 
Database username [irods]: 

-------------------------------------------
Database Type: postgres
ODBC Driver:   PostgreSQL
Database Host: localhost
Database Port: 5432
Database Name: ICAT
Database User: irods
-------------------------------------------

Please confirm [yes]: 
Database password: 
Updating /etc/irods/server_config.json...
Error encountered running setup_irods:
Traceback (most recent call last):
  File "/var/lib/irods/scripts/setup_irods.py", line 437, in main
    setup_server(irods_config, json_configuration_file=options.json_configuration_file)
  File "/var/lib/irods/scripts/setup_irods.py", line 116, in setup_server
    database_interface.setup_database_config(irods_config)
  File "/var/lib/irods/scripts/irods/database_interface.py", line 176, in setup_database_config
    if database_already_in_use_by_irods(irods_config):
  File "/var/lib/irods/scripts/irods/database_interface.py", line 73, in database_already_in_use_by_irods
    with contextlib.closing(database_connect.get_database_connection(irods_config)) as connection:
  File "/var/lib/irods/scripts/irods/database_connect.py", line 218, in get_database_connection
    sys.exc_info()[2])
  File "/var/lib/irods/scripts/irods/database_connect.py", line 201, in get_database_connection
    return pypyodbc.connect(connection_string.encode('ascii'), ansi=True)
  File "/var/lib/irods/scripts/irods/pypyodbc.py", line 2452, in __init__
    self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly)
  File "/var/lib/irods/scripts/irods/pypyodbc.py", line 2501, in connect
    check_success(self, ret)
  File "/var/lib/irods/scripts/irods/pypyodbc.py", line 988, in check_success
    ctrl_err(SQL_HANDLE_DBC, ODBC_obj.dbc_h, ret, ODBC_obj.ansi)
  File "/var/lib/irods/scripts/irods/pypyodbc.py", line 966, in ctrl_err
    raise DatabaseError(state,err_text)
IrodsError: pypyodbc encountered an error connecting to the database:
('28000', '[28000] [unixODBC]FATAL: Ident authentication failed for user "irods"')
Exiting...

# vi /var/lib/pgsql/data/pg_hba.conf:

host all all 127.0.0.1/32 md5

# systemctl restart postgresql

# python /var/lib/irods/scripts/setup_irods.py 
The iRODS service account name needs to be defined.
iRODS user [irods]: 
iRODS group [irods]: 

+--------------------------------+
| Setting up the service account |
+--------------------------------+

Existing Group Detected: irods
Existing Account Detected: irods
Setting owner of /var/lib/irods to irods:irods
Setting owner of /etc/irods to irods:irods
iRODS server's role:
1. provider
2. consumer
Please select a number or choose 0 to enter a new value [1]: 
Updating /etc/irods/server_config.json...

+-----------------------------------------+
| Configuring the database communications |
+-----------------------------------------+

You are configuring an iRODS database plugin. The iRODS server cannot be started until its database has been properly configured.

ODBC driver for postgres [PostgreSQL]: 
Database server's hostname or IP address [localhost]: 
Database server's port [5432]: 
Database name [ICAT]: 
Database username [irods]: 

-------------------------------------------
Database Type: postgres
ODBC Driver:   PostgreSQL
Database Host: localhost
Database Port: 5432
Database Name: ICAT
Database User: irods
-------------------------------------------

Please confirm [yes]: 
Database password: 
Updating /etc/irods/server_config.json...
Listing database tables...
Salt for passwords stored in the database: 
Updating /etc/irods/server_config.json...

+--------------------------------+
| Configuring the server options |
+--------------------------------+

iRODS server's zone name [tempZone]: testZone
iRODS server's port [1247]: 
iRODS port range (begin) [20000]: 
iRODS port range (end) [20199]: 
Control Plane port [1248]: 
Schema Validation Base URI (or off) [file:///var/lib/irods/configuration_schemas]: 
iRODS server's administrator username [rods]: irods

-------------------------------------------
Zone name:                  testZone
iRODS server port:          1247
iRODS port range (begin):   20000
iRODS port range (end):     20199
Control plane port:         1248
Schema validation base URI: file:///var/lib/irods/configuration_schemas
iRODS server administrator: irods
-------------------------------------------

Please confirm [yes]: yes
iRODS server's zone key: 
Zone key must be at least 1 character in length.
iRODS server's zone key: 
iRODS server's negotiation key (32 characters): 
Negotiation key must be exactly 32 characters in length.
iRODS server's negotiation key (32 characters): 
Control Plane key (32 characters): 
Updating /etc/irods/server_config.json...

+-----------------------------------+
| Setting up the client environment |
+-----------------------------------+


iRODS server's administrator password: 

Updating /var/lib/irods/.irods/irods_environment.json...

+--------------------------+
| Setting up default vault |
+--------------------------+

iRODS Vault directory [/var/lib/irods/Vault]: 

+-------------------------+
| Setting up the database |
+-------------------------+

Listing database tables...
Creating database tables...

+-------------------+
| Starting iRODS... |
+-------------------+

Validating [/var/lib/irods/.irods/irods_environment.json]... Success
Validating [/var/lib/irods/VERSION.json]... Success
Validating [/etc/irods/server_config.json]... Success
Validating [/etc/irods/host_access_control_config.json]... Success
Validating [/etc/irods/hosts_config.json]... Success
Ensuring catalog schema is up-to-date...
Updating to schema version 2...
Updating to schema version 3...
Updating to schema version 4...
Updating to schema version 5...
Catalog schema is up-to-date.
Starting iRODS server...
Success

+---------------------+
| Attempting test put |
+---------------------+

Putting the test file into iRODS...
Getting the test file from iRODS...
Removing the test file from iRODS...
Success.

+--------------------------------+
| iRODS is installed and running |
+--------------------------------+