hosts文件位于 /etc/ansible/ 目录记录着目标主机的ip ssh用户 密码等信息
1.ping测试连通性
1 | ansible all -m ping |
2.创建downloads目录
1 | ansible all -m file -a "path=/work/admin/downloads state=directory" |
3.复制文件到远程主机 copy模块
1 | ansible all -m copy -a "src=/work/admin/downloads/hyperic-hqee-agent-x86-64-linux-5.8.4.tar.gz dest=/work/admin/downloads/" |
4.查看文件
1 | ansible all -m command -a "ls -al /work/admin/downloads/hyperic-hqee-agent-x86-64-linux-5.8.4.tar.gz" |
5.远程解压压缩包
1 | ansible java -m command -a "tar xf /work/admin/downloads/jdk-7u80-linux-x64.tar.gz -C ~/" |
6.启动服务 service模块
1 | ansible mysqldb -m service -a 'name=puppet state=restarted enabled=yes' |
7.创建用户 ansible user模块
1 | ansible mysqldb -m user -a 'name=ansible state=present' |
修改密码为 123456
1 | ansible mysqldb -m raw -a 'echo 123456|passwd --stdin ansible' |
8.copy模块
目的:把主控端/root目录下的’1.txt’文件拷贝到到指定节点上
1 | # ansible mysqldb -m copy -a 'src=~/1.txt dest=/tmp/' |
配置文件:
1 | # vim /etc/ansible/hosts |
测试:
1 | # ansible mysqldb -m ping |
ansible mysqldb -m user -a ‘name=ansible state=present’ —-创建用户ansible
ansible mysqldb -m raw -a ‘echo 123456|passwd –stdin ansible’ —-修改密码为123456
9.file模块
目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root
命令:
1 | ansible mysqldb -m file -a "dest=/tmp/1.txt mode=755 owner=root group=root" |
10.group模块
目的:在所有节点上创建一个组名为nolinux,gid为2014的组
命令:
1 | ansible mysqldb -m group -a 'gid=2014 name=nolinux' |
11.user模块
目的:在指定节点上创建一个用户名为nolinux,组为nolinux的用户
命令:
添加用户:
1 | # ansible mysqldb -m user -a 'name=nolinux groups=nolinux state=present' |
删除用户:
1 | # ansible mysqldb -m user -a 'name=nolinux state=absent remove=yes' |
ansible mysqldb -m user -a ‘name=ansible state=present’ —-创建用户ansible
ansible mysqldb -m raw -a ‘echo 123456|passwd –stdin ansible’ —-修改密码为123456
12.yum模块
目的:在指定节点上安装 lrzsz 服务
命令:
1 | ansible mysqldb -m yum -a "state=present name=lrzsz" |
13.service模块
目的:启动指定节点上的 puppet 服务,并让其开机自启动
命令:
1 | ansible mysqldb -m service -a 'name=puppet state=restarted enabled=yes' |
14.script模块
目的:在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)
命令:
1 | ansible mysqldb -m script -a '/root/a.sh |
15.raw模块
目的:在10.1.1.113节点上运行hostname命令
命令:
ansible 10.1.1.113 -m raw-a 'hostname|tee'
16.get_url模块
目的:将http://10.1.1.116/favicon.ico文件下载到指定节点的/tmp目录下
命令:
ansible 10.1.1.113 -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'
17.synchronize模块
目的:将主控方/root/a目录推送到指定节点的/tmp目录下
命令:
ansible 10.1.1.113 -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes'
执行效果:
delete=yes 使两边的内容一样(即以推送方为主)
compress=yes 开启压缩,默认为开启
–exclude=.git 忽略同步.git结尾的文件
18.ansible hosts
1 | [server:all] |