1.安装
yum install epel-release -y
yum install ansible
# rpm -ql 安装服务的名称,下面以ansible服务为例
rpm -ql ansible |more
查看某个Module参数使用
查看ansible支持的模块列表
ansible-doc -l
查看对应模块的参数使用
ansible-doc -s shell
2.shell
2.1命令行方式
# 简单示例
ansible webservers -m shell -a 'mkdir /tpm/cch'
ansible webservers -m shell -a 'ls /tpm/'
# 执行多条命令,使用 && 分割
ansible webservers -m shell -a 'cd /tmp && ls /tmp && ./test.sh >x'
2.2 playload方式
执行方式:
ansible-playbook shell.yaml
shell.yaml文件名称
---
- hosts: webservers
vars:
http_port: 80
server_name: www.ctnrs.com
remote_user: root
gather_facts: false
tasks:
- name: shell测试
shell: |
echo 111111111 > /tmp/xxx
mkdir /tmp/yyy
3. file
#创建目录
ansible webservers -m file -a 'path=/tmp/test2 state=directory mode=755'
# 删除文件
ansible webservers -m file -a 'path=/tmp.cch.txt state=absent'
# 递归删除目录
ansible webservers -m file -a 'path=/tmp/test state=absent '
4.yum
4.1 命令行方式
# name指定版本安装
ansible webservers -m yum -a "name=http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm state=present"
#不指定版本安装
ansible webservers -m yum -a "name=nginx state=present"
# yum卸载
ansible webservers -m yum -a "name=nginx state=absent"
4.2 playload方式
---
- hosts: webservers
vars:
http_port: 80
server_name: www.ctnrs.com
remote_user: root
gather_facts: false
tasks:
- name: yum测试
yum:
name: http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.14.0-1.el7_4.ngx.x86_64.rpm
state: present
5.service/systemd
如果被控制的主机的操作系统是centos7,相当于在目标主机上执行:systemctl stop nginx
通过ansible-doc -s systemd 官方文档进行学习
举例如下
---
- hosts: webservers
vars:
http_port: 80
server_name: www.ctnrs.com
remote_user: root
gather_facts: false
tasks:
- name: systemd测试
systemd:
name=nginx
state=stopped
enabled=yes
daemon_reload=yes
6.unarchive
将本机上的压缩包传输到被控制机器上解压
通过ansible-doc -s unarchive 官方文档进行学习
举例如下:
---
- hosts: webservers
remote_user: root
gather_facts: false
tasks:
- name: unarchive测试
unarchive:
src=/tmp/test.tar.gz
dest=/tmp
7.debug
相当于打印log日志
通过 ansible-doc -s debug 官方文档进行学习
---
- hosts: webservers
remote_user: root
gather_facts: false
tasks:
- name: debug测试
debug:
msg: IP= "{{ inventory_hostname }}"