Task: Automation of the process of creating users and applications on the IIS server version 7.0 and higher. You can use PowerShell (as in the example), Python, or something else. Scripts have to be readable and not compiled, so that they can be easily changed in the future.
1) Modify existing set of scripts:
1.1) create a new account (includes the creation of a user's Windows user for FTP access and user for the IIS application ([url removed, login to view]);
1.2) creation of the user's root folder ([url removed, login to view]));
1.3) creation of a new pool ([url removed, login to view]);
1.4) creation of a new site ([url removed, login to view]);
The above scripts have to be modified as indicated bellow:
1.a) Rewrite them to functions (or classes)
1.b) Add logging - each script should log its work to a file and return the result to a top-level script.
Log format to file (date - action):
21-12-2017: 21: 12: 33 OK "domain_name was created"
21-12-2017: 21: 12: 38 ERR "domain_name was not created - error text"
All actions have to be also logged on the server to the file as successful and unsuccessful.
2) Create new scripts (considering the requirements of p.1.1-1.2):
2.1) stop the pool;
2.2) launch the pool;
2.3) stop the site;
2.4) launch the site;
2.5) delete the site;
2.6) delete the pool (includes deleting all sites in the pool);
2.7) delete user's FTP and user's IIS along with deleting the user's home folder (one script);
2.8) changes the individual parameters of the pool and site (virtual memory limit, protection flag against frequent failures, CPU usage limit in the pool, number of connections to the site, etc.). Perhaps it should be a named array (name -> values) that will be passed to the function and the function will change these values ??on the server. There must be a list of available names (for the change) and validation of data.
3) Create a common script that:
3.a) every 5 minutes, listen the remote json file from the URL (https) and receives the tasks (p.1.1-1.4, p.2.1-2.8) with the data to be executed (an example of the data for the task is specified in [url removed, login to view]);
3.b) performs all the tasks;
3.c) after execution (according to p.3.2) calls URL (https), and sends (via json or associative array) using POST method the results of execution of all tasks in the form:
task_id, execution_status(ok/err), error_code(if_any), date_and_time_of_execution_of_this_task
Example 4.1) Create a hosting account/site on the server (p.1.1 + p.1.2 + p.1.3 + p.1.4)
- Input: username_transfer, username_iis, passwords for them, name_pool.
- The script creates users; if an error occurs, then returns the error flag and error message. If users are successfully created, the user's home folder is created and appropriate rights are assigned.
Next, an application pool is created.
- If an error occurs on any of the above steps, you do not need to delete the committed actions. The script returns an error if such user, pool or other object already exists. In this case, the script can be successfully executed if the administrator removes an existing object from the server.
Example 4.2) Stop the pool (p.2.1)
The script is called from the cron (p.3) with the task of stopping the pool (named pool) and stops it. The result is returned back to the cron, which will then return it to the remote server (p.3.c).
Example 4.3) Add a new site to your account (p.1.4)
The script receives data for the creation of the site (site name, alias, pool_name, IP, http / https). At the beginning, you create a site folder, then the site itself in IIS. The result is returned back.
21 freelancers are bidding on average $464 for this job
I read your job post and understand it fully. It is very very easy to execute it ,please contact me once i will provide you best ever service that is my promise.
I went through your project and I'm highly interested . I can start right now! My completion rate is always 100% , and I'm sure I'll respect that for your project too. Knock me please