自动化运维之ansible
admin
2023-07-31 00:46:56
0

ansible介绍
ansible是最近两年比较热门的一款服务器自动化运维工具,基于python语言来研发的,目前来说还是有很多类似的工具,比如ansible、puppet、cfengine、chef、func、fabric,其中ansible以及fabric还是挺推荐的,ansible集合了许多其它运维工具的优点,比如:批量系统配置、批量程序部署、批量运行命令。它有许多模块组成,简单来说呢,ansib是依赖程序模块并驱动模块工作的一个运维框架!


ansible组件

  • ansible core
    核心模块
  • host inventory
    主机库,需要管理的的主机列表
  • connection plugins
    连接插件
  • modules
    core modules(自带模块)
    custom modules(自定义模块)
  • plugins
    为ansible扩展功能组件
  • playbook
    剧本,按照所设定编排的顺序执行完成安排的任务

ansible的特点

  • 无客户端 轻量级
  • 无服务端 轻量级
  • 直接执行命令
  • 基于模块工作,可配合playbook工作
  • 基于ssh连接
  • 由python研发
  • 支持sudo

注意事项
主控端Python版本需要2.6或以上
被控端Python版本小于2.4需要安装python-simplejson
被控端如开启SELinux需要安装libselinux-python
windows不能做为主控端


ansible安装

12345678 # apt-get安装aptget install ansible # pip安装pip install ansible #如果提示\’module\’ object has no attribute \’HAVE_DECL_MPZ_POWM_SEC\’pip install pycryptoonpypi


配置文件路径

12345 # 主机配置文件/etc/ansible/hosts # ansible配置文件/etc/ansible/ansible.cfg

Alic的个性


ansible.cfg的基本配置

1234567891011121314151617181920212223242526272829 [defaults]# 基础配置项hostfile       = /etc/ansible/hostslibrary        = /usr/share/ansibleremote_tmp     = $HOME/.ansible/tmppattern        = *forks          = 5poll_interval  = 15sudo_user      = root#ask_sudo_pass = True#ask_pass      = Truetransport      = smartremote_port    = 22 # 角色配置路径#roles_path    = /etc/ansible/roles [ssh_connection]ssh_args = \”\”# ssh秘钥文件control_path = ./ssh_keys (default is sftp)# 基于ssh连接scp_if_ssh = True [accelerate]accelerate_port = 5099accelerate_timeout = 30accelerate_connect_timeout = 5.0

hosts的主机清单列表

123 # docker服务器主机组[docker]172.17.0.1  ansible_ssh_user=root ansible_ssh_pass=fenglican


一言不合就动手吧~~~
既然配置好了那就测试控制端与被控端的通讯状态~~~

12345 root@alicThinkPadX201:~# ansible docker -m ping172.17.0.1 | success >> {    \”changed\”: false,     \”ping\”: \”pong\”}

在被控端执行命令

12345678 # 在docker服务器组安装vimroot@alicThinkPadX201:~# ansible docker -a \”apt-get install vim\”172.17.0.1 | success | rc=0 >>Reading package lists...Building dependency tree...Reading state information...vim is already the newest version.0 upgraded, 0 newly installed, 0 to remove and 72 not upgraded.

将控制端的文件cp到被控端

1234567891011121314 root@alicThinkPadX201:/etc/ansible# ansible docker -m copy -a \”src=./hosts dest=/root/Alic/\”172.17.0.1 | success >> {    \”changed\”: false,     \”dest\”: \”/root/Alic/hosts\”,     \”gid\”: 0,     \”group\”: \”root\”,     \”md5sum\”: \”e36c4ce85f9815ae010ca8d86d1afa0d\”,     \”mode\”: \”0644\”,     \”owner\”: \”root\”,     \”path\”: \”/root/Alic/hosts\”,     \”size\”: 252,     \”state\”: \”file\”,     \”uid\”: 0}

在被控端执行控制端的脚本

1234567 root@alicThinkPadX201:/etc/ansible# ansible docker -m script -a \”Alic/demo.sh\”172.17.0.1 | success >> {    \”changed\”: true,     \”rc\”: 0,     \”stderr\”: \”\”,     \”stdout\”: \”hello~~~\\r\\n\”}


使用ansible运维工具必不能少了playbook的。
来来来-传送-自动化运维之playbook


相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...