笔记#Ansinle——使用、安装、主机清单、配置文件、

Ansible重要组成:

ansible的执行过程:

1加载自己的配置文件,默认/etc/ansible/ansible.cfg

2加载自己的对应模块文件,如:command

3通过ansible将模块或命令生成对应的临时Python文件,并将改文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件

4给文件+x执行

5执行并返回结果

6删除临时Python文件,sleep 0退出

ANSIBLE PLAYBOOK:任务剧本,编写ansible任务集的配置文件,顺序执行,通常是JSON格式的YML文件

INVENTORY:管理主机清单

MODULES:执行命令的模块,可以自定义

PLUGINS:模块功能的补充,如连接类插件,循环插件,变量插件等

API:供第三方程序调用的应用程序编程接口

ANSIBLE:组合上面的绿框,ansible命令工具,核心工具

ansible命令执行来源:

    USER,普通用户,即SYSTEM  ADMINISTARTOR

用户直接敲命令

    CMDB,(配置管理数据库)API调用

CMDB

    PUBLIC/PRIVATE  CLOUD  API  调用

通过公有云私有云开发接口

    USER-> Ansible  Playbook ->Ansible

用户通过编写playbook调用ansible

利用ansible实现管理的方式:

    Ad-Hoc:通过用户敲单条命令实现,偶尔用

    Ansible-playbook:通过编写剧本实现,多数时候用

playbook执行过程:

    将编写好的任务集写入playbook

    通过ansible-playbook命令分拆任务集至逐条ansible命令。按规则逐条执行。

Ansible操作对象:

    HOSTS主机

    NETWORKING网络设备

注意事项:

    执行ansible的主机一般称为主控端,中控,master或堡垒机

    主控端Python版本需要2.6以上

    被控端Python版本小于2.4需要安装Python-simplejson

    被控端如果开启SELinux需要安装libselinux-python

    Windows不能作为主控端

ansible安装:

    yum方式:

    yum   install  ansible

    Git方式

    git  clone  git://github.com/ansible/ansible.git  --recursive

    cd    ./ansible

    source  ./hacking/env-setup

source相当于.    ;用来运行脚本的

可以,先用yum  info  ansible看看,反正我看不懂,

看看ansible里的清单列表

rpm   -ql   ansible因为很多所以可以一点一点看

rpm   -ql   ansible  | less   一点一点看

查看ansible安装情况的命令


ansible命令对应的路径是软链接,方便跟换版本,

配置文件:

/etc/ansible/ansible.cfg主配置文件。

/etc/ansible/hosts主机清单

/ect/ansible/roles/存放角色的目录

程序:

/usr/bin/ansible主程序,临时命令执行工具

/usr/bin/ansible-doc查看配置文档,模块查看工具

/usr/bin/ansible-galaxy下载、上传优秀代码或roles模块的官平

/usr/bin/ansible-playbook定制自动化任务编剧本工具

/usr/bin/ansible-pull远程执行命令的工具

/usr/bin/ansible-vault加密工具

/usr/bin/ansible-console基于console界面与用户交互的执行工具

1.主机清单:Inventory

ansible为了便捷使用主机。在Inventory file中将主机分组命名

默认的Inventory  file文件为/etc/ansible/hosts

Inventory  file文件可以有多个

在不添加主机清单时会报提示,


添加后,不加-k 口令验证报提示


基于key验证后不用加-k口令验证,提示


注意:在第一次用-k口令连接时输入错误口令会被机器记住,把口令记录文件 /root/.ssh/known_hosts里,把改文件删除后重连就可以。也可以单独重新连接重新输入正确口令,也可以。

ansible的配置文件/etc/ansible/ansible.cfg

[defaults]

#incentory                    =    /etc/ansible/hosts

                                                                               主机清单

#library                         =    /usr/share/my_modules/

                                                                              

#module_utils               =    /usr/share/my_module_utils/

                                                                                        模块的路径

#remote_tmp                =    ~/.ansible/tmp

                                                                                 远程的临时目录                                    

#local_tmp                    =    ~/.ansible/tmp

                                                                                远程的临时目录     

#plugin_filters_cfg        =    /etc/ansible/plugin_filters.yml

                                                                                   插件的配置文件 

#forks                            =    5

                                                                             如果执行20台主机,同时并发执行5次(5台主机),         

#poll_interval                =    15

                                                                           多长时间拉一次数据  默认15秒            

#sudo_user                    =    root

      不仅仅以当前身份执行,还可以默认以root身份执行,在本机以普通身份远程控制,可以切换到sudo形式控制     
        

#ask_sudo_pass             =    True

                                                                        s是否sudo需要口令

#ask_pass                        =    True

                                                                           用户名是否询问口令

#transport                       =    smart

#remote_port                  =    22

                                                                        s远程主机的端口号

#module_lang                  =    C

#module_set_locale          =    Fales

#host_key_checking          =    False  

                                                                         a检查对应服务器或链接主机的host_key. 建议吧#去掉,取消注释          

默认日志是被注销的

#log_path=/var/log/ansible.log    建议取消注释,把#去掉

执行状态:

绿色:执行成功并且不需要做改变的操作

黄色:执行成功并且对目标主机做变更

红色:执行失败

在配置文件/etc/ansible/ansible.cfg里有颜色设置

end


























猜你喜欢

转载自blog.csdn.net/lhl98765432/article/details/80549625