首页 > 其他分享 >Ansible 实记

Ansible 实记

时间:2023-01-10 20:11:56浏览次数:28  
标签:compose 实记 ansible yaml Ansible install docker root

自动化运维工具 Ansible ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: (1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; (3)、各种模块核心模块、command模块、自定义模块; (4)、借助于插件完成记录日志邮件等功能; (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。 首先安装

Ansible安装

ansible的安装方法有多种

EPEL源的rpm包安装:
[root@ansible ~]#yum install ansible
编译安装
yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
tar xf ansible-1.5.4.tar.gz
cd ansible-1.5.4
python setup.py build
python setup.py install
mkdir /etc/ansible
cp -r examples/* /etc/ansible
Git方式
git clone git://github.com/ansible/ansible.git --recursive
cd ./ansible
source ./hacking/env-setup
pip 安装

pip 是安装Python包的管理器,类似 yum

yum install python-pip python-devel
yum install gcc glibc-devel zibl-devel  rpm-bulid openssl-devel
pip install  --upgrade pip
pip install ansible --upgrade
确认安装
[root@ansible ~]#ansible --version
ansible 2.9.5
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]
##ansible目录结构   ## 以下为安装 docker 及 docker-compose 的ansible-playbook 直接上干货 [root@docker ansible]# tree . ├── ansible.cfg ├── hosts ├── roles │   ├── docker │   │   ├── files │   │   ├── handlers │   │   │   └── main.yaml │   │   ├── meta │   │   ├── tasks │   │   │   └── main.yaml │   │   ├── templates │   │   │   └── daemon.json.j2 │   │   └── vars │   │       └── main.yaml │   └── docker-compose │       ├── files │       │   └── docker-compose-Linux-x86_64 │       ├── handlers │       ├── meta │       ├── tasks │       │   └── main.yaml │       ├── templates │       └── vars │           └── main.yaml └── work_dir     ├── install_docker-compose.retry     ├── install_docker-compose.yaml     ├── install_docker.retry     └── install_docker.yaml   ##解释各个目录作用 [root@docker docker]# tree . ├── files         必要的一些需要的文件存放目录 ├── handlers │   └── main.yaml    handler处理的动作 ├── meta          元数据存放的一些依赖 ├── tasks │   └── main.yaml    主要执行的任务 ├── templates │   └── daemon.json.j2      一些配置文件的存放 └── vars     └── main.yaml          变量设置的存放目录   [root@docker docker]# cat tasks/main.yaml - name: install required packages   yum:     name: "{{ item }}"           需要进行安装的一些包名     state: present               安装的包的状态   with_items:                    对应上面的item(可以循环操作)     - yum-utils     - device-mapper-persistent-data     - lvm2   - name: add docker repo to /etc/yum.repos.d   shell: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo   register: result              将shell的操作结果注册为result   - name: install docker-ce   yum:     name: docker-ce     state: present   when: result|success           如果上面的result为success,则该任务执行   - name: create /etc/docker   file:     path: "{{ docker_config_dir }}"          利用file模块进行创建一个目录,引用变量     state: directory   - name: start docker service   systemd:                         centos7开启服务,添加到启动项     name: docker     state: started     enabled: true   - name: provide docker-ce configfile   template:     src: daemon.json.j2                 提供配置文件     dest: /etc/docker/daemon.json   notify: restart docker                  配置文件修改了触发通知机制,提醒handler   [root@docker docker]# cat handlers/main.yaml - name: restart docker   systemd:     name: docker     state: restarted            触发机制后,将服务进行重启     enabled: true     [root@docker docker]# cat vars/main.yaml docker_config_dir: /etc/docker   [root@docker docker]# cat templates/daemon.json.j2 {   "registry-mirrors": ["https://cbd49ltj.mirror.aliyuncs.com"] }   [root@docker work_dir]# tree . ├── install_docker-compose.retry ├── install_docker-compose.yaml ├── install_docker.retry └── install_docker.yaml   [root@docker work_dir]# cat install_docker.yaml - hosts: container_nodes         对应hosts配置文件的两个节点   remote_user: root              执行使用root用户   roles:     - docker                  针对的role名称   [root@docker work_dir]# ansible-playbook install_docker.yaml --syntax-check           playbook: install_docker.yaml   [root@docker work_dir]# ansible-playbook install_docker.yaml   ##以下为安装 docker-compose的 ansible-playbook   [root@docker docker-compose]# tree . ├── files │   └── docker-compose-Linux-x86_64           docker-compose的二进制文件 ├── handlers ├── meta ├── tasks │   └── main.yaml ├── templates └── vars     └── main.yaml     [root@docker docker-compose]# cat tasks/main.yaml - name: copy docker-compose-Linux-x86_64 to /usr/local/bin   copy:     src: ../files/docker-compose-Linux-x86_64              这里可以使用相对路径,可以使用绝对路径     dest: "{{ docker_compose_dir }}/docker-compose-Linux-x86_64"   - name: install docker-compose   shell: cd "{{ docker_compose_dir }}" && mv docker-compose-Linux-x86_64 docker-compose && chmod +x docker-compose   [root@docker docker-compose]# cat vars/main.yaml docker_compose_dir: /usr/local/bin   [root@docker work_dir]# cat install_docker-compose.yaml - hosts: container_nodes   remote_user: root   roles:     - docker-compose                                

标签:compose,实记,ansible,yaml,Ansible,install,docker,root
From: https://www.cnblogs.com/muyi-yang/p/17041251.html

相关文章

  • ansible 安装 ntp
    ----name:synctimehosts:lichuangather_facts:falsetasks:-name:SELINUX=disabledselinux:state=disabled-name:iptablesstop......
  • ansible 安装 zabbix agent
    ----name:installzabbix-agentconfhosts:lichuanvars:zabbix_server_ip:10.3.229.14zabbix_agent_ip:"{{ansible_em1.ipv4.address}}"gath......
  • Ansible介绍以及基于角色搭建LNMP和zabbix
    1ansible常用指令总结,并附有相关示例。/usr/bin/ansible主程序,临时命令执行工具/usr/bin/ansible-doc查看配置文档,模块功能查看工具,相当于man/usr/bin/ansible-pl......
  • CentOS Stream 8 离线安装ansible 4.2.0
    首先在一个Online的CentOSStream8上把需要的安装包下载下来,然后再拷贝到离线的主机上进行安装。下载工具推荐用pythonpip来下载,这样在安装的时候也用pip来安装就很......
  • Ansible 介绍与实战操作演示
    目录一、概述二、Ansible架构三、Ansible工作原理四、Ansible安装与基础配置1)开启记录日志2)去掉第一次连接sshask确认五、Ansible的七个命令1)ansible2)ansible-doc3)ans......
  • Ansible安装及简单使用
    一、配置免密互通参考地址:https://www.cnblogs.com/qq1035807396/p/16998602.html二、开始安装Ansible1、添加repoyuminstall-yhttps://dl.fedoraproject.org/......
  • 使用ansible-playbook自动化安装redis哨兵
    【使用自动化安装MySQL主从架构】说明:使用ansible-playbook 自动化安装redis哨兵+redis-exporter的采集数据【剧本说明】以下文件在roles目录下treeroles/redis_s......
  • ansible使用
    一、简介Ansible是一个开源的、自动化运维的强大工具,早前被红帽收购,通过它可实现实现批量系统配置、批量程序部署、批量运行命令等功能。Ansible不需要在远程主机上安......
  • Ansible 状态管理相关知识总结【转】
    前言就像所有服务器批量管理工具(puppet有DSL,salt有state)一样,ansible也有自己的状态管理组件,叫做playbook。所有这些类似的概念的东西都是让你用一种更简单的语言(而......
  • Ansible_处理失败的任务【转】
    一、Ansible处理任务失败1、管理play中任务错误1️⃣:Ansible评估任务的返回代码,从而确定任务是成功还是失败2️⃣:通常而言,当任务失败时,Ansible将立即在该主机上中止play的其......