ansible的安装

将下载的包全部安装

ansible的安装

ansible --version查看版本

ansible的安装

在主节点创建用户devops

ansible的安装

切换到devops用户在家目录下创建ansible目录

ansible的安装

创建ansible.cfg文件,内容如下,意思是访问inventory文件就访问当前目录下的inventory

ansible的安装

创建inventory文件

ansible的安装

在主节点ssh-keygen免密操作

ansible的安装

两个子节点创建用户devops

(以server5和server6作为子节点)

添加密码

在主节点(server3)ssh-copy-id 子节点

主节点

ansible all -m ping 连接两个子节点

ansible的安装

 

ansible all -m ping -u root 尝试以root用户连接两个子节点

ansible的安装

root用户不可用

ansible all -m ping -u devops -b 以devops用户身份连接以root,切换root测试

ansible的安装

依旧是权限的问题

ansible test -m copy -a "src=/etc/passwd dest=/tmp/passwd" 对test这个子节点将其/etc/passwd copy到/tmp下

ansible test -a “ls/tmp”  查看test节点的/tmp

ansible的安装

ansible test -a “rm/tmp/passwd”     删除test节点的/tmp/passwd警告但是删除成功

ansible的安装

ansible test -m copy -a “src=/etc/passwd dest=/mnt/passwd” 对/mnt没有权限,tmp是对普通用户也有操作权限

ansible的安装

添加权限,在两个子节点用户

vim/etc/sudoers

将devops这个普通用户的权限设置的与超户一致,并添加免密登陆

以超户身份修改在修改完毕退出的时候要添加!

ansible的安装

ansible test -m copy -a "src=/etc/passwd dest=/mnt/passwd" -b 就可以了

ansible的安装

cat /etc/ansible/ansible.cfg

复制 下面几行

ansible的安装

添加到自己写的ansible.cfg将注释去掉

ansible的安装

这样也是对权限的一种提升

子节点的匹配

ansible 'test:!prod' -m ping 匹配在test中不在prod中的

ansible的安装

ansible 'test:&prod' -m ping

ansible '&test:prod' -m ping 匹配在test中也在prod中的

ansible的安装

将test的prod两个子节点添加到同一个组中,组的名字随意,添加到一起的写法如下

ansible的安装

 

很形象的写法

ansible test -m yum -a "name=httpd state=present" 对test匹配项安装httpd

ansible的安装

在test对应的主机下面查看

ansible的安装

ansible test -m shell -a “rpm -q httpd”查看httpd的安装信息

ansible的安装

ansible tesrt -m yum -a "name=httpd state=absent“卸载httpd

ansible的安装

ansible tesrt -m yum -a "name=httpd state=latest“ 安装最新版本

其实安装http调用的是ansible里的yum模块,所以下面来看一下模块

ansible-doc -l 查看所有的模块

ansible的安装

ansible tesrt -m yum -a "name=mariadb-server state=present“ 安装mariadb

ansible的安装

ansible tesrt -m yum -a "name=MySQL-python state=present“ 安装mysql的远程连接

ansible的安装

ansible test -m service -a "name=mariadb state=started" 启动mariadb

ansible的安装

ansible test -m mysql_user -a "name=wlt password=westos priv=*.*:select host='%' state=present“ 为mysql创建用户给与查看权限

ansible的安装

在其他主机登陆测试

ansible的安装

playbook

在主节点上写playbook文件

ansible的安装

因为server6上面没有创建过东西所以指定server6

ansible-playbook playbook.yml  --syntax-check  检验错误

ansible的安装

这就是写错了

ansible的安装

这样就是没问题了

ansible-playbook playbook.yml  --list-task  查看需要执行的动作

ansible的安装

ansible-playbook playbook.yml  --list-hosts  动作节点ip

ansible的安装

ansible-playbook playbook.yml  执行

ansible的安装

再次执行只是省掉了安装过程以及启动,结果一样,会看到没有出现changes,没有出现变更

ansible的安装

由于yml文件的特殊性将Tab键的缩进指定为两个空格

vim .vimrc

autocmd FileType yaml setlocal ai ts=2 sw=2 et

ansible的安装

再tab键补齐的时候就会缩进两个空格

将playbook.yml修改,可以进行对配置的修改以及修改完成之后的重启

写任务和触发器

ansible的安装

创建files文件夹 将http.conf文件放到这个文件夹下

ansible的安装

 

 

ansible的安装

修改files下的httpd.conf的监听端口

ansible的安装

执行

ansible的安装

查看

在server6http的监听端口就是8080

ansible的安装

配置火墙

首先就是启动

再就是添加http到策略里

ansible的安装

在server6中可以自己添加index.html

或者在主节点的playbook.yml中配置

在安装 httpd下面添加

ansible的安装

在files下创建index.html

ansible的安装

ansible的安装

 

本机连接测试

首先将主节点也与副节点一致,做ssh-copy-id免密

将devops用户也写进/etc/sudoers

在playbook.yml文件末尾添加

ansible的安装

因为是顺序执行,所以写在最后

测试

ansible的安装

因为只是测试成功与否所以显示没错即可

模版的使用

在ansible文件夹下创建模版的文件夹mkdir templates

将files文件夹下的httpd.conf复制过来

ansible的安装

将文件重命名为httpd.conf.j2

ansible的安装

将playbook.yml文件修改

ansible的安装

因为性质一样所以就没什么需要修改的

ansible的安装

传参

将httpd监控的端口作为参数传到文件中

将模版修改

ansible的安装

修改playbook.yml

ansible的安装

测试

ansible的安装

没出错

获取副节点主机信息

 

 

上一篇:Ansible自动化运维之Playbook实战


下一篇:industrial automation company list - PROCONEX