1.uptime
#!/usr/bin/python
#encoding:utf-8
import ansible.runner
import sys
# construct the ansible runner and execute on all hosts
results = ansible.runner.Runner(
pattern='client', forks=10,
module_name='command',
module_args='/usr/bin/uptime',
).run()
if results is None:
print "No hosts found"
sys.exit(1)
for (hostname, result) in results['contacted'].items():
if not 'failed' in result:
print "UP ***********"
print "%s >>> %s" % (hostname, result['stdout'])
for (hostname, result) in results['contacted'].items():
if 'failed' in result:
print "FAILED *******"
print "%s >>> %s" % (hostname, result['msg'])
for (hostname, result) in results['dark'].items():
print "DOWN *********"
print "%s >>> %s" % (hostname, result)
UP ***********
client1.info.com >>> 21:54:00 up 10 min, 1 user, load average: 0.02, 0.14, 0.15
UP ***********
puppetmaster.info.com >>> 21:54:00 up 11 min, 1 user, load average: 0.30, 1.56, 1.41
2.ping
#!/usr/bin/python
#encoding:utf-8
import ansible.runner
import sys
# construct the ansible runner and execute on all hosts
results = ansible.runner.Runner(
pattern='client', forks=10,
module_name='ping',
#module_args='ping',
).run()
if results is None:
print "No hosts found"
sys.exit(1)
for (hostname, result) in results['contacted'].items():
if not 'failed' in result:
print "%s >>>ping:%s" % (hostname, result['ping'])
for (hostname, result) in results['dark'].items():
if 'failed' in result:
print "%s >>>ping:%s" % (hostname, result['msg'])
client1.info.com >>>ping:pong
puppetmaster.info.com >>>ping:pong
3.command
#!/usr/bin/python
#encoding:utf-8
import ansible.runner
import sys
command = sys.argv[1]
results = ansible.runner.Runner(
pattern='client', forks=10,
module_name='shell',
module_args=command,
).run()
if results is None:
print "No hosts found"
sys.exit(1)
for (hostname, result) in results['contacted'].items():
if not 'failed' in result:
print "UP ***********"
print "%s" % (hostname)
print "%s" %(result['stdout'])
print ''
for (hostname, result) in results['contacted'].items():
if 'failed' in result:
print "FAILED *******"
print "%s >>> %s" % (hostname, result['msg'])
print ''
for (hostname, result) in results['dark'].items():
print "DOWN *********"
print "%s >>> %s" % (hostname, result)
print ''
UP ***********
client1.info.com
2015-11-23-21:56:12
UP ***********
puppetmaster.info.com
2015-11-23-21:56:11
4.install ftp(yum)
#!/usr/bin/python
#encoding:utf-8
import ansible.runner
import sys
def check_ftp():
check_ftp = ansible.runner.Runner(
pattern='client', forks=10,
module_name='shell',
module_args='rpm -q vsftpd',
).run()
if check_ftp is None:
print "No hosts found"
sys.exit(1)
for (hostname, result) in check_ftp['contacted'].items():
if not 'failed' in result:
print "%s" % (hostname)
print "%s" %(result['stdout'])
print ''
return 1
for (hostname, result) in check_ftp['contacted'].items():
if 'failed' in result:
print "%s >>> %s" % (hostname, result['msg'])
print ''
for (hostname, result) in check_ftp['dark'].items():
print "%s >>> %s" % (hostname, result)
print ''
def install():
install_ftp = ansible.runner.Runner(
pattern='client', forks=10,
module_name='yum',
module_args='name=vsftpd state=latest',
).run()
if check_ftp is None:
print "No hosts found"
sys.exit(1)
for (hostname, result) in install_ftp['contacted'].items():
if not 'failed' in result:
print "%s" % (hostname)
for v in result['results']:
print v
return 1
for (hostname, result) in install_ftp['contacted'].items():
if 'failed' in result:
print "%s >>> %s" % (hostname, result['msg'])
print ''
for (hostname, result) in install_ftp['dark'].items():
print "%s >>> %s" % (hostname, result)
print ''
def start():
start_ftp = ansible.runner.Runner(
pattern='client', forks=10,
module_name='shell',
module_args='/etc/init.d/vsftpd start',
).run()
if start_ftp is None:
print "No hosts found"
sys.exit(1)
for (hostname, result) in start_ftp['contacted'].items():
if not 'failed' in result:
print "%s" % (hostname)
print "%s" %(result['stdout'])
print ''
return 1
for (hostname, result) in start_ftp['contacted'].items():
if 'failed' in result:
print "%s >>> %s" % (hostname, result['msg'])
print ''
for (hostname, result) in start_ftp['dark'].items():
print "%s >>> %s" % (hostname, result)
print ''
if __name__ == '__main__':
check_ftp()
install()
start()
client1.info.com
package vsftpd is not installed
client1.info.com
Loaded plugins: product-id, subscription-manager
Updating certificate-based repositories.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:2.2.2-11.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
vsftpd x86_64 2.2.2-11.el6 rhel-iso 151 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 151 k
Installed size: 331 k
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : vsftpd-2.2.2-11.el6.x86_64 1/1
Installed products updated.
Verifying : vsftpd-2.2.2-11.el6.x86_64 1/1
Installed:
vsftpd.x86_64 0:2.2.2-11.el6
Complete!
client1.info.com
All packages providing vsftpd are up to date
client1.info.com
Starting vsftpd for vsftpd: [ OK ]
转载于:https://my.oschina.net/eddylinux/blog/534463