企业网站推广设计,天津做不锈钢的网站,沈阳市工伤网站做实,利用php做网站目录
一、ansible——自动化运维工具
1.1 Ansible 自动运维工具特点
1.2 Ansible 运维工具原理
二、安装ansible
三、ansible命令模块
3.1 command模块
3.2 shell模块
3.3 cron模块
3.4 user模块
3.5 group 模块
3.6 copy模块
3.7 file模块
3.8 ping模…目录
一、ansible——自动化运维工具
1.1 Ansible 自动运维工具特点
1.2 Ansible 运维工具原理
二、安装ansible
三、ansible命令模块
3.1 command模块
3.2 shell模块
3.3 cron模块
3.4 user模块
3.5 group 模块
3.6 copy模块
3.7 file模块
3.8 ping模块
3.9 service模块
3.10 script模块
3.11 yum模块
3.12 setup模块 一、ansible——自动化运维工具
1.1 Ansible 自动运维工具特点
Ansible 与 Saltstack 均是基于 Python 语言开发Ansible 只需要在一台普通的服务器上运行即可不需要在客户端服务器上安装客户端。因为 Ansible 是基于 SSH 远程管理而Linux服务器大都离不开SSH所以Ansible不需要为配置工作添加额外的支持。Ansible 安装使用非常简单而且基于上千个插件和模块实现各种软件、平台、版本的管理支持虚拟容器多层级的部署。很多读者在使用 Ansible 工具时认为 Ansible比 Saltstatck 执行效率慢其实不是软件本身慢是由于 SSH 服务慢可以优化 SSH 连接速度及使用 Ansible 加速模块满足企业上万台服务器的维护和管理。
1.2 Ansible 运维工具原理
Ansible分为控制端和被控端主要是基于SSH协议去管理客户端被控端是无需安装Agent插件的Ansible会读取控制端hosts文件根据文件中定义IP列表信息调取本地的各个模块对被控端机器实现批量、并发的配置管理和维护如果任务比较复杂可以写成PlayBook剧本进行分发管理
Ansible 自动运维管理工具优点
轻量级更新时只需要在操作机上进行一次更新即可采用 SSH 协议不需要去客户端安装 agent批量任务执行可以写成脚本而且不用分发到远程就可以执行使用 python 编写的维护更简单支持 sudo 普通用户命令去中心化管理。
二、安装ansible
#192.168.19.2
hostname ansible
su#192.168.19.3
hostname webserver
su#192.168.19.4
hostname mysql
susystemctl stop firewalld
setenforce 0 #安装epel扩展源
yum -y install epel-release
yum -y install ansible #树型查询工具
yum -y install treetree /etc/ansible vim /etc/ansible/hosts#配置主机清单
[webservers]
192.168.19.3
[dbservers]
192.168.19.4 #生成密钥对
ssh-keygen -t rsa
123123
123123ssh-copy-id root192.168.19.3
ssh-copy-id root192.168.19.4 每次查询都需要输入密钥
#可以使用ssh-agent代理
ssh-agent bash
ssh-add
123123ansible webserver -m command -a date 三、ansible命令模块
3.1 command模块 命令格式ansible [主机] [-m 模块] [-a args]#列出所有已安装的模块按q退出
ansible-doc -l #所有主机执行data命令其中all可以换成IP或者分类名称例192.168.19.2 / webserver
ansible all -m command -a date #不加-m模块则默认使用command模块
ansible all -a date
ansible all -a ls ///常用的参数
chdir在远程主机上运行命令前提前进入目录
creates判断指定文件是否存在如果存在不执行后面的操作
removes判断指定文件是否存在如果存在执行后面的操作ansible all -m command -a chdir/home ls ./3.2 shell模块
//在远程主机执行命令相当于调用远程主机的shell进程然后在该shell下打开一个子shell运行命令支持管道符号等功能
ansible-doc -s shellansible dbservers -m shell -a echo 123456 | passwd --stdin test
ansible dbservers -m shell -a echo $(ifconfig ens33 | awk NR2 {print $2}) | cut -d -f2
ansible dbservers -m shell -a echo $(ifconfig ens33 | awk NR2 {print \$2})3.3 cron模块
//在远程主机定义任务计划。其中有两种状态statepresent表示添加可以省略absent表示移除。
ansible-doc -s cron #按 q 退出//常用的参数
minute/hour/day/month/weekday分/时/日/月/周
job任务计划要执行的命令
name任务计划的名称ansible webservers -m cron -a minute*/1 job/bin/echo helloworld nametest crontab
ansible webservers -a crontab -l
ansible webservers -m cron -a nametest crontab stateabsent #移除计划任务假如该计划任务没有取名字nameNone即可 3.4 user模块 user模块是请求三条指令useradduserdelusermod#模块信息
ansible-doc -s user#创建用户
ansible all -m user -a nameyh#查看用户账户信息
ansible all -m command -a tail -1 /etc/passwd#移除指令
ansible all -m user -a nameyh stateabsent 3.5 group 模块 //用户组管理的模块
ansible-doc -s groupansible dbservers -m group -a namemysql gid306 systemyes #创建mysql组
ansible dbservers -a tail /etc/group
ansible dbservers -m user -a nametest01 uid306 systemyes groupmysql #将test01用户添加到mysql组中
ansible dbservers -a tail /etc/passwd
ansible dbservers -a id test01 3.6 copy模块 对文件进行有效的复制ansible-doc -s copyansible dbservers -m copy -a src/etc/fstab dest/opt/fstab.backansible dbservers -a ls /opt
ansible dbservers -a cat /opt/fstab.backansible dbservers -m copy -a contenthello lic dest/opt/test.txt
ansible dbservers -a cat /opt/test.txt3.7 file模块
ansible-doc -s fileansible dbservers -m user -a namemysql systemyesansible dbservers -m file -a ownermysql groupmysql mode600 path/opt/test.txt
ansible dbservers -a ls -l /opt/test.txt#创建
#ansible dbservers -m file -a path/opt/abc.txt statetouchansibledbservers -m file -a src/opt/test.txt path/opt/test.txt.link statelink
ansible dbservers -a ls -l /opt#移除文件/opt/test.txt
ansible dbservers -m file -a path/opt/test.txt stateabsent 3.8 ping模块
ansible all -m ping 3.9 service模块 ansible-doc -s service#192.168.19.3执行yum -y install httpd ansible webserver -a systemctl status httpdansible webserver -m service -a enabledtrue namehttpd statestartedsystemctl status httpd
systemctl is-enabled httpd 3.10 script模块
ansible-doc -s scriptvim test.sh
#!/bin/bash
echo hello ansible from script /opt/script.txtchmod x test.sh
ansible all -m script -a test.sh3.11 yum模块
ansible-doc -s yumansible dbservers -m yum -a namehttpd
ansible dbservers -a rpm -q httpdansible dbservers -m yum -a namehttpd stateabsent
ansible dbservers -a rpm -q httpd3.12 setup模块 ansible-doc -s setup#获取MySQL组主机的facts信息ansible dbservers -m setup