1. setup
查看函数 ansible 172.28.9.167 -m setup ansible 10.212.52.252 -m setup -a 'filter=ansible_*_mb' 查看机器内存 filter=ansible_memory_mb 查看内存 filter=ansible_all_ipv4_addresses 查看ip filter=ansible_default_ipv4' 查看网卡配置 filter=ansible_nodename 主机名 filter=ansible_distribution_version 系统版本 ansible_all_ipv4_addresses:仅显示ipv4的信息。 ansible_devices:仅显示磁盘设备信息。 ansible_distribution:显示是什么系统,例:centos,suse等。 ansible_distribution_major_version:显示是系统主版本。 ansible_distribution_version:仅显示系统版本。 ansible_machine:显示系统类型,例:32位,还是64位。 ansible_eth0:仅显示eth0的信息。 ansible_hostname:仅显示主机名。 ansible_kernel:仅显示内核版本。 ansible_lvm:显示lvm相关信息。 ansible_memtotal_mb:显示系统总内存。 ansible_memfree_mb:显示可用系统内存。 ansible_memory_mb:详细显示内存情况。 ansible_swaptotal_mb:显示总的swap内存。 ansible_swapfree_mb:显示swap内存的可用内存。 ansible_mounts:显示系统磁盘挂载情况。 ansible_processor:显示cpu个数(具体显示每个cpu的型号)。 ansible_processor_vcpus:显示cpu个数(只显示总的个数)。
2. yum
ansible test -m yum -a "name=namp state=lastest " start状态:lastest默认安装最新版的 present:安装指定的版本 **一般常用 absent:表示卸载/删除 installed ???
下载多个,循环
yum: name={{ item }} state=installed with_items: - gcc - gcc-c++ - autoconf - automake - make - pcre-devel
3. copy
ansible web -m copy -a "src=/etc/rc.local dest=/tmp"
| |
src |
从哪里来 |
dest |
到哪里去 |
backup=yes |
表示如果备份源文件,把原来的文件的名字用时间戳来命名 |
mode |
权限 |
owner |
属主 |
group |
属组 |
content |
指定文件的内容, |
- name: Copy jumpserver.sh Coco.sh copy: src={{ item.src }} dest={{ item.dest }} with_items: - src: jumpserver dest: /etc/init.d/ mode: 0755 - src: coco dest: /etc/init.d/ mode: 0755
4. file
group:定义文件/目录的属组 mode:定义文件/目录的权限 owner:定义文件/目录的属主 path:必选项,定义文件/目录的路径 recurse:递归的设置文件的属性,只对目录有效 src:要被链接的源文件的路径,只应用于state=link的情况 dest:被链接到的路径,只应用于state=link的情况 state: --directory:如果目录不存在,创建目录 --file:即使文件不存在,也不会被创建 --link:创建软链接 --hard:创建硬链接 --touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间 absent:删除目录、文件或者取消链接文件
ansible nginx -m file -a "src=/etc/hosts dest=/tmp/hosts_link state=link" | |
state |
touch(创建文件) directory(创建目录) link(软连接) hard(硬链接) absent(删除) |
recurse |
递归的设置文件的属性,只对目录有效 yes表示使用递归设置 |
file: path={{ item }} state=directory with_items: - /a - /b
5. cron
* * * * * /bin/sh /server/scripts &>/dev/null
| |
minute |
分 |
hour |
时 |
day |
日 |
month |
月 |
weekday |
周 |
job |
指定做什么事 |
disabled=yes |
注释 |
state=absent |
删除 |
不写默认是*** |
|
user |
以哪个用户执行 |
- hosts: ceshi tasks: - name: cron cron: name='xiaoqiang' minute='*/5' hour='01' day='22' month='01' job="/bin/bash /2.sh" tail -f /var/log/cron
6. script
- hosts: nfs tasks: - name: script: /server/scripts/sersync/sersync.sh 远程运行本地主机的脚本
7. unarchive
用于解压文件,模块包含如下选项: copy:在解压文件之前,是否先将文件复制到远程主机,默认为yes。若为no,则要求目标主机上压缩包必须存在。 creates:指定一个文件名,当该文件存在时,则解压指令不执行 dest:远程主机上的一个路径,即文件解压的路径 grop:解压后的目录或文件的属组 list_files:如果为yes,则会列出压缩包里的文件,默认为no,2.0版本新增的选项 mode:解决后文件的权限 src:如果copy为yes,则需要指定压缩文件的源路径 owner:解压后文件或目录的属主 hosts: web tasks: - name: jieya unarchive: src=/tmp/1.tar.gz dest=/opt本地是一个压缩包,到达对面就解压了 unarchive: src=http://10.0.194.200:50001/test/jumpserver/jumpserver.tar.gz dest=/opt/ remote_src=yes mode=0755 ##网上下载直接解压下载 ansible zabbxi_test -m unarchive -a 'src=/opt/zabbix_update-shanghaiIT.tar.gz dest=/opt/ copy=no'
8. service
ansible oldboy -m service -a "name=crond state=stopped started restarted enabled=no" | |
name |
服务名字 |
stopped |
现在关闭此服务 |
started |
现在就启动此服务 |
restarted |
重启此服务 |
enabled |
是否开机自启动 |
runlevel |
运行级别 |
ansible 172.28.9.167 -m service -a 'name=nginx state=stopped enabled=no' ansible 172.28.9.167 -m service -a 'name=nginx state=started enabled=yes runlevel=3' - name: Start rpc nfs service: name={{ item }} state=restarted enabled=yes runlevel=3 with_items: - rpcbind - nfs
9. get_url
- name: Download foo.conf get_url: url: http://example.com/path/file.conf dest: /etc/foo.conf mode: '0440'
10. sysctl
ansible 172.28.9.167 -m sysctl -a "name=net.ipv4.ip_forward value=1 reload=yes" 内核转发