Linux企业级——Ansible-doc用法及常用模块使用
文章目录
- Linux企业级——Ansible-doc用法及常用模块使用
- 1.Ansible-doc
- 1.1 **Ansible-doc命令**
- 1.2 Ansible-doc命令的利用
1.Ansible-doc
ansible-doc是类似于man功能的help帮助说明。
1.1 Ansible-doc命令
ansible-doc -l #显示所有可用模块
例:
ansible-doc yum #查看yum模块使用帮助
1.2 Ansible-doc命令的利用
1.1.1 yum模块
通过对yum模块使用帮助的查看,进行apache服务的安装。
ansible webservers -m yum -a "name=httpd stste=present" #安装
ansible webservers -m yum -a "name=http://172.25.1.250/rhel7.3/x86_64/dvd/Packages/vsftpd-3.0.2-21.e17.x86_64.rpm state=present" #在线安装
ansible webservers -m yum -a "name=/mnt/vsftpd-3.0.2-21.e17.x86_64.rpm state=present" #本地安装
ansible webservers -m yum -a "name=httpd state=absent" #卸载
① 在线安装
ansible-doc yum #查看yum模块的使用帮助
ansible test -m yum -a "name=httpd state=present" #在线安装(state:状态(present-安装,absent-卸载,latest-安装最新的)
② 在server2:
ps aux #查看进程,可以查看到安装的进程。
1.1.2 service模块
通过对service模块使用帮助的查看,进行apache服务的配置。
ansible-doc service #查看service模块的使用帮助
ansible test -m service -a "name=httpd state=started" #设置httpd服务状态为开启
ansible test -m service -a "name=httpd state=started enabled=yes" #设置开机自启
在server2中查看服务状态:
systemctl status httpd
1.1.3 firewalld模块
通过对yum模块使用帮助的查看,进行firewalld服务的添加。
ansible-doc firewalld #查看firewalld模块的使用帮助
ansible test -m service -a "name=firewalld state=started enabled=yes" #开启firewalld防火墙,并设置开机自启
ansible test -m firewalld -a "service=http permanent=yes state=enabled" #在防火墙上永久添加http服务
在server2中查看火墙策略:
firewall-cmd --list-all
1.1.4 copy模块
通过对copy模块使用帮助的查看,对文件进行拷贝。
dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录。
src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容,如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。
mode:文件或目录复制到远程主机后,所拥有的权限
ansible-doc copy #查看copy模块的使用帮助
ansible test -m copy -a "src=/etc/hosts dest=/tmp/hosts" #将默认发布文件传输到apache的默认发布目录下
1.1.5 uri模块
通过对uri模块使用帮助的查看,进行HTTP请求的查看。
uri模块主要用于发送HTTP协议,通过使用uri模块,可以让目标主机向指定的网站发送如Get、Post这样的HTTP请求,并且能得到返回的状态码。
ansible-doc uri #查看uri模块的使用帮助
ansible db -m uri -a "url=http://172.25.66.2 return_content=yes" #执行有返回值
1.1.6 file模块
通过对file模块使用帮助的查看,对文件进行操作。
ansible webservers -m file -a "dest=/tmp/hosts mode=600 owner=root group=root" #修改文件权限和属性
ansible webservers -m file -a "dest=/tmp/dir1/dir2 mode=755 owner=root group=root state=directory" #递归创建
ansible webservers -m file -a "dest=/tmp/dir1/dir2 state=absent" #远程删除文件
ansible test -m file -a "dest=/var/www/html/index.html state=absent" #删除server2的指定文件
1.1.7 mysql_user模块
通过对mysql_user模块使用帮助的查看,对数据库进行操作。
ansible test -m yum -a "name=mariadb-server" #ansible命令实现在server2主机上安装数据库mariadb-server
ansible-doc service #查看服务配置方法
ansible test -m service -a "name=mariadb state=started enabled=yes" 在server2主机上开启mariadb服务并设置开机自启动
注:在进行用户操作之前需要在server2上提前安装MySQL-python
在server2:
yum install MySQL-python.x86_64 -y
在server1:
ansible-doc -l | grep mysql #查看mysql的服务模块
ansible test -m mysql_db -a "name=ansible state=present" #添加ansible库
在server2查看库:
在server1:
ansible test -m mysql_user -a "name=haohao password=haohao priv='ansible.*:ALL' state=present" #创建用户并授权
在server2尝试登陆:
select * from mysql.user where user='haohao'\G; #查看haohao用户登陆权限(此时为本地登陆)
在server1:
ansible-doc mysql_user #查看数据库用户的管理方法
ansible test -m mysql_user -a "name=nover password=nover priv='ansible.*:ALL' state=present host='%'" #设置任意远程主机使用nover用户登陆数据库
在server2:
select * from mysql.user where user='haohao'\G; #查看haohao用户登陆权限(此时为本地登陆)
任意远程主机(server1主机)尝试登陆:
mysql -uhaohao -p -h 172.25.66.2 #使用haohao用户远程登陆数据库
show databases; #此时可以查看库
le.*:ALL' state=present host='%'" #设置任意远程主机使用nover用户登陆数据库
在server2:
select * from mysql.user where user='haohao'\G; #查看haohao用户登陆权限(此时为本地登陆)
任意远程主机(server1主机)尝试登陆:
mysql -uhaohao -p -h 172.25.66.2 #使用haohao用户远程登陆数据库
show databases; #此时可以查看库