ITPub博客

首页 > 数字化转型 > ERP > ansible常用方法

ansible常用方法

原创 ERP 作者:czxin788 时间:2018-01-12 20:43:45 2 删除 编辑
ansible常用方法

ansible有很多模块,也有很多playbook的写法,但是我个人感觉没必要这么麻烦,只要掌握以下几个模块,就足以够用。

先看公用的主机清单配置:
1
[wangsn@m-ubonex-jenkins ~]$ cat /etc/ansible/hosts 
2
[twm]
3
twm1-172.16.22.82                       ansible_ssh_host=172.16.22.82
4
twm2-172.16.22.83                       ansible_ssh_host=172.16.22.83
5
twmjob-172.16.22.86                     ansible_ssh_host=172.16.22.86
6

1、shell模块
作用:在远程主机上执行linux命令。
例子:
看每个远程主机的/opt目录下有哪些文件:
1
[wangsn@m-ubonex-jenkins ~]$ ansible -i /etc/ansible/hosts  twm -m shell -a "ls -l /opt" --sudo -k
2
参数说明:
-i:指定主机清单文件位置
-m:指定模块名称,常用的模块有shell模块、copy模块,cron模块等
-a:指定模块的参数

2、copy模块

作用:复制文件到远程主机

例子:

1
[wangsn@m-ubonex-jenkins ~]$ ansible  -i /etc/ansible/hosts  twm  -m copy  -a "src=/home/wangsn/useradd.sh dest=/usr/local/src/ mode=0755" --sudo -k
2

参数说明:
src:要复制到远程主机的文件在本地的地址
dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录


3、script模块

作用:这个模块表示ansible-server上的脚本不用传输到被管理机上再运行,而是被管理机直接调用ansible-server上的脚本,
例子:
1
[wangsn@m-ubonex-jenkins ~]$  ansible  -i /etc/ansible/hosts  twm -m script -a '/home/wangsn/useradd.sh' --sudo -k

1
[wangsn@m-ubonex-jenkins ~]$ cat /home/wangsn/useradd.sh
2
#!/bin/bash
3
source /etc/profile
4
useradd -g sa test
5
echo 'test' |passwd test --stdin
6
sed  -i  '/AllowUsers/s/$/ test/' /etc/ssh/sshd_config
7
/etc/init.d/sshd restart
8

4、cron模块
作用:用于管理计划任务。
包含如下选项: 
backup:对远程主机上的原任务计划内容修改之前做备份 
day:日(1-31,*,*/2,……) 
hour:小时(0-23,*,*/2,……)     hour="5,2" 每天的2点和5点
minute:分钟(0-59,*,*/2,……)  minute=*/3表示每隔3分钟
month:月(1-12,*,*/2,……)   
weekday:周(0-7,*,……)
job:要执行的任务,依赖于state=present 
name:该任务的描述 
special_time:指定什么时候执行,参数:reboot(这个计划任务在重启的时候运行),yearly,annually,monthly,weekly,daily,hourly 
state:确认该任务计划是创建还是删除 
user:以哪个用户的身份执行
例子:
1
[wangsn@m-ubonex-jenkins ~]$ ansible  -i /etc/ansible/hosts  twm -m cron  -a ' name="test" minute="0" hour="5,2" job="ls -alh > /dev/null"' --sudo -k
2
[wangsn@m-ubonex-jenkins ~]$ ansible  -i /etc/ansible/hosts  twm  -m cron -a 'name="test" state=absent'  --sudo -k         --删除计划任务
3

5、fetch模块(拉取文件)
作用:文件拉取模块,主要是将远程主机中的文件拷贝到本机中,和copy模块的作用刚刚相反
例子:
1
[wangsn@m-ubonex-jenkins ~]$ ansible  -i /etc/ansible/hosts  twm -m fetch -a "src=/opt/apache-tomcat-8.0.27  dest=/home/wangsn" --sudo -k

参数说明:
src表示为远程主机上需要传送的文件路径;
dest表示为本机上的路径。

在传送过来的文件,是按照IP地址进行分类,然后路径是源文件的路径

注意:在拉取文件的时候,必须拉取的是文件,不能拉取文件夹

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28916011/viewspace-2150104/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-06-03

  • 博文量
    233
  • 访问量
    858434