----------ansible环境安装配置部署----------
管理端:192.168.80.100
被管理端:192.168.80.101
被管理端:192.168.80.102

yum install -y epel-release //安装epel源
yum install ansible -y

ansible --version //查看ansible版本

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署


yum install tree -y

tree /etc/ansible/ 树状结构展示文件夹

/etc/ansible/

├── ansible.cfg #ansible的配置文件

├── hosts #ansible的主仓库,用于存储需要管理的远程主机的相关信息

└── roles #

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_02


cd /etc/ansible

vi hosts 添加以下内容

[webserver]

192.168.80.101

[mysql]

192.168.80.102

ssh-keygen -t rsa 直接回车就行
ssh-copy-id root@192.168.80.101 ssh-copy-id root@192.168.80.102 //配置密钥对验证

---------ansible命令行模块--------
------command模块------
命令格式:ansible [主机] [-m 模块] [-a args]
ansible-doc -l //列出所有已安装的模块 注:按q退出
ansible-doc -s yum //-s列出yum模块描述信息和操作动作

ansible 192.168.80.101 -m command -a ‘date’ //指定ip执行date

ansible playbook 批量安装rpm包 ansible安装部署_计划任务_03


ansible webserver -m command -a ‘date’ //指定分类执行date

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_04

ansible mysql -m command -a ‘date’

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_05

ansible all -m command -a ‘date’ //所有hosts主机执行date命令

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_06

ansible all -a ‘ls /’ 如果不加-m模块,则默认运行command模块 查看根目录下的文件

-----cron模块------ 计划任务模块

两种状态(state):present表示添加(可以省略),absent表示移除。

ansible-doc -s cron //查看cron模块信息

ansible webserver -m cron -a ‘minute="*/1" job="/bin/echo heihei" name=“test cron job”’

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_07


ansible webserver -a ‘crontab -l’

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_08

ansible webserver -m cron -a ‘name=“test cron job” state=absent’ //移除计划任务,假如该计划任务没有取名字,name=None即可

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_09

-----user模块------ 用户模块

user模块是请求的是useradd, userdel, usermod三个指令

ansible-doc -s user

ansible mysql -m user -a ‘name=“test01”’ //创建用户test01

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_10


ansible mysql -m command -a ‘tail /etc/passwd’

ansible mysql -m user -a ‘name=“test01” state=absent’ //删除用户test01

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_11

-----group模块-----组模块

group模块请求的是groupadd, groupdel, groupmod 三个指令。

ansible-doc -s group

ansible mysql -m group -a ‘name=mysql gid=306 system=yes’ 创建组gid为306可以登陆到系统中的mysql用户

ansible playbook 批量安装rpm包 ansible安装部署_计划任务_12


ansible mysql -a ‘tail /etc/group’

ansible mysql -m user -a ‘name=test01 uid=306 system=yes group=mysql’

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_13


ansible mysql -a ‘tail /etc/passwd’

ansible mysql -a ‘id test01’

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_14

------copy模块-------- 复制模块

ansible-doc -s copy

ansible mysql -m copy -a ‘src=/etc/fstab dest=/opt/fstab.back owner=root mode=640’

ansible playbook 批量安装rpm包 ansible安装部署_mysql_15


ansible mysql -a ‘ls -l /opt’

ansible playbook 批量安装rpm包 ansible安装部署_计划任务_16

ansible mysql -a ‘cat /opt/fstab.back’

ansible playbook 批量安装rpm包 ansible安装部署_mysql_17

ansible mysql -m copy -a ‘content=“hello heihei!”

dest=/opt/fstab.back’ //将hello heihei!写入覆盖到/opt/fstab.back

ansible mysql -a ‘cat /opt/fstab.back’

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_18

------file模块--------

ansible-doc -s file

ansible mysql -m user -a ‘name=mysql system=yes’

ansible mysql -m group -a ‘name=mysql system=yes’

ansible mysql -m file -a ‘owner=mysql group=mysql mode=644 path=/opt/fstab.back’ //修改文件的属主属组权限等

ansible playbook 批量安装rpm包 ansible安装部署_计划任务_19

设置/opt/fstab.link为/opt/fstab.back的链接文件

ansible mysql -m file -a ‘path=/opt/fstab.link src=/opt/fstab.back state=link’

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_20

ansible mysql -a ‘ls -l /opt’

ansible playbook 批量安装rpm包 ansible安装部署_mysql_21

ansible mysql -m file -a “path=/opt/fstab.back state=absent” //删除一个文件
ansible mysql -m file -a “path=/opt/test state=touch” 创建一个test文件

-----ping模块------- 测试网络连通性

ansible all -m ping

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_22

-----service模块--------

ansible-doc -s service

yum install -y httpd 在webserver上安装httpd服务

ansible webserver -a ‘systemctl status httpd’ //查看web服务器httpd运行状态

ansible playbook 批量安装rpm包 ansible安装部署_ansible安装部署_23


在webserver中启动httpd服务

systemctl start httpdansible webserver -a ‘systemctl status httpd’

ansible playbook 批量安装rpm包 ansible安装部署_计划任务_24

ansible webserver -m service -a ‘enabled=true name=httpd state=started’ //启动httpd服务

ansible playbook 批量安装rpm包 ansible安装部署_计划任务_25


systemctl status httpd //查看是否开启------shell模块-----

ansible-doc -s shell

ansible mysql -m shell -a ‘echo abc123|passwd --stdin mysql’ //创建用户使用无交互模式给用户设置密码

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_26

------script模块---------
ansible-doc -s script
vi test.sh #!/bin/bash
echo “hello ansible from script”> /opt/script.txt

chmod +x test.sh ansible mysql -m script -a ‘test.sh’
cat /opt/script.txt

-----yum模块-----

ansible-doc -s yum

ansible mysql -m yum -a ‘name=zsh’ //yum安装zsh

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_27


rpm -q zsh

ansible playbook 批量安装rpm包 ansible安装部署_创建用户_28

ansible mysql -m yum -a ‘name=zsh state=absent’ //卸载zsh

ansible playbook 批量安装rpm包 ansible安装部署_mysql_29


[root@ac ~]# rpm -q zsh

ansible playbook 批量安装rpm包 ansible安装部署_mysql_30


-----setup模块-------

ansible-doc -s setup

ansible mysql -m setup //获取mysql组主机的facts信息