ansible

DevOps“五宗罪”,这样向DevOps过渡注定会失败

橙三吉。 提交于 2021-01-24 01:25:56
云计算提供的速度响应、敏捷性和规模效应,契合了如今不断变化的数字商业环境。企业基于最新的IT技术,重构IT架构,加速产品创新和服务交付的速度,从而提高运营效率和市场占有。 不过,企业IT管理者在利用云计算进行数字化转型时,往往会面临两方面的挑战:一是技术,一是企业固有的流程、文化和组织架构。许多公司仍然运转于各个“信息孤岛”,陷入依赖“瀑布式”软件开发的泥潭中,这与技术本身提供的巨大灵活性背道而驰。 在数字化时代,速度和敏捷性是企业领跑和打造核心竞争力的关键。DevOps通过打破开发与运维之间的隔阂,大大缩短软件的开发周期,并快速部署到生产环境,对企业的数字化转型至关重要。 DevOps就像一座现代软件开发的圣杯。许多人都在积极寻找,有些人声称已经找到,而更多人还在寻找中。 由于每家公司都有其独特的运营方式,通往 DevOps 成功之路上,没有一步步的标准化指导。但是,可以肯定以下这5种方式是无法过渡到DevOps的,DevOps不应该做什么,希望本文能够给企业客户以启示。 不确定DevOps对企业的业务意味着什么 DevOps并没有严格的定义,它为什么会出现,采用DevOps可以解决什么问题,有多种解释。从2010年起,DevOps运动的创始人之一斯蒂芬·尼尔森·史密斯(StephenNelson-Smith)就发布了一篇有关DevOps的很漂亮的帖子。清楚地说明了,开发

Ansible Playbook 使用条件判断语句

試著忘記壹切 提交于 2021-01-23 21:04:02
先介绍一下 gather_facts 参数,该参数用于指定在执行任务前,是否先执行 setup 模块获取主机相关信息,以便给后面的任务使用 [root@localhost ~] # ansible 192.168.119.134 -m setup # 查看主机的facter信息 192.168.119.134 | SUCCESS => { " ansible_facts " : { " ansible_all_ipv4_addresses " : [ " 192.168.119.134 " ...... 条件判断语句写法: [root@localhost ~ ]$ cat when.yml --- - hosts: 192.168.119.134 user: root gather_facts: True # 必须先开启这个 tasks: - name: use when shell: touch /tmp/ when.txt when: ansible_date_time.year == " 2019 " # 表示当 ansible_date_time.year 的值等于 2019 时,就使用 shell 模块执行 touch /tmp/when.txt 命令 来源: oschina 链接: https://my.oschina.net/u/4329213/blog

Ansible 之 when判断语句使用

旧城冷巷雨未停 提交于 2021-01-23 13:33:08
一、when语句 Ansible when 语句等同于if语句的作用 二、判断test主机是否有redis-server进程 --- - hosts: test vars_files: remote_user: cedar become: yes vars: test: "0" tasks: - name: "判断redis进程是否存在" shell: netstat -tlunp | grep redis-server | wc -l ignore_errors: True register: result - name: "打印检查结果" debug: msg: "{{result}}" - name: "打印是否有redis-server进程" debug: msg: "{{result.stdout.find('1')}}" - name: "判断是否启动" shell: touch /root/aaa.txt when: result.stdout.find('1') == 0 #判断屏幕输出结果是否为1 二、当test主机有redis-server进程时结果 [root@Ansible playbook]# ansible-playbook process.yaml PLAY [test] ****************************************

loop over hosts in jinj2a template, respecting --limit

笑着哭i 提交于 2021-01-23 06:10:12
问题 I'm aware than ansible supports loops in templates in this form: {% for host in groups['all'] %} "{{ host }}"{% if not loop.last %},{% endif %} {% endfor %} When I run ansible, this loops over everything in the hosts file, as one might expect. When I run ansible with the --limit command line argument, I would like to loop over only the hosts that match the limit. Is there a way to express that loop in jinja2 templates? 回答1: You can use play_hosts variable from vars , for example: {% for host

ansible 自动化部署

江枫思渺然 提交于 2021-01-22 16:31:21
ansible安装/配置 ubuntu apt 安装 sudo apt install ansible pip安装 pip install ansible ansible 基于密码配置 配置 /etc/ansible/hosts 文件, 添加如下内容 ali1 ansible_host=118.31.39.31 ansible_port=22 ansible_user=root ansible_ssh_pass=123456 ali1: 目标服务器别名 ansible_host: 目标服务器ip ansible_user: 目标服务器user ansible_ssh_pass: 目标服务器用户密码 测试 ansible ali1 -m ping 返回成功消息 ali1 | SUCCESS => { "changed": false, "ping": "pong" } ansible 基于秘钥配置 将本机 公钥复制到目标服务器 ssh-copy-id -i ./.ssh/id_rsa.pub root@118.31.39.31 配置 /etc/ansible/hosts 文件 ali2 ansible_host=118.31.39.31 ansible_port=22 ansible_user=root 测试 ansible ali2 -m ping 返回成功消息 ali2 |

Ansible 之 自动化部署redis主从(单机)

隐身守侯 提交于 2021-01-22 15:29:47
一、playbook文件redis.yaml --- - hosts: test vars_files: - vars.yml remote_user: "{{user}}" become: yes tasks: - name: "安装epel源" command: yum -y install epel-release - name: "安装redis" yum: name: redis state: latest - name: "修改redis配置文件监听IP为本机" lineinfile: path: /etc/redis.conf regexp: '^bind 127' line: bind {{master_redis}} - name: "设置开机启动" service: name: redis enabled: yes - name: "启动主库redis6379端口" service: name: redis state: started - name: "制作从库配置文件" command: cp /etc/redis.conf /etc/redis_slave.conf - name: "创建从库的数据存放位置" command: mkdir -p /var/lib/redis_slave - name: "编辑从库配置文件的绑定IP" lineinfile:

Ansible lineinfile模块详解

笑着哭i 提交于 2021-01-22 10:23:39
[toc] 简介 之所以专门说一说这个模块,是因为lineinfile在实际使用中非常有用。 实际上,在大多数时候,我们在linux上的操作,就是针对文件的操作,通过配置管理工具对配置文件作统一的配置修改是一个非常酷的功能。 下面是官方针对该模块的说明: lineinfile - Ensure a particular line is in a file, or replace an existing line using a back-referenced regular expression 简单讲,这个模块就是针对一个文件中行内容的操作。 下面我们详细说一说其具体可以做的事情。 修改匹配行 下面是一个简单的task示例: # 将/etc/selinux/config中匹配到以'SELINUX='开头的行,将其替换为'SELINUX=disabled' - name: modify selinux to disabled lineinfile: path: /etc/selinux/config regex: '^SELINUX=' line: 'SELINUX=disabled' 在匹配行前或后添加内容 示例文件如下: # cat /etc/http.conf Listen 127.0.0.1:80 Listen 80 Port 在匹配行前添加 在http.conf文件的

Ansible 之 lineinfile 模块使用

别说谁变了你拦得住时间么 提交于 2021-01-22 10:02:39
一、常用需求 1、替换某行内容 2、在某行前插入内容 3、在某行后面插入内容 4、删除某行 二、测试文件内容 [client] port=3306 socket=/tmp/mysql.sock [mysqld] user = mysql basedir = /app/mysql datadir = /app/mysql/data port=3306 server-id = 1 socket=/tmp/mysql.sock [mysqldump] quick max_allowed_packet = 16M 三、playbook 文件 --- - hosts: test remote_user: cedar become: yes tasks: - name: "在socket=/tmp/mysql.sock前插入内容" lineinfile: path: /etc/my_bak.cnf insertbefore: 'socket=/tmp/mysql.sock' line: 我是socket前面的内容 - name: "在server-id后插入内容" lineinfile: path: /etc/my_bak.cnf insertafter: 'server-id = 1' line: 我是server-id后面的内容 - name: "user=mysql 替换"

ansible playbook入门

徘徊边缘 提交于 2021-01-22 02:44:52
1. 最基础的yml [root@node1 ansible]# vi w.yml --- - hosts: test remote_user: root tasks: - name: 测试w shell: w ~ "w.yml" [New] 6L, 82C written yml格式: ---表示开始 -表示下一级,后面跟着一个空格 :后面也跟着一个空格 结果: [root@node1 ansible]# ansible-playbook w.yml PLAY [test] ****************************************************************************************** TASK [Gathering Facts] ******************************************************************************* ok: [192.168.44.13] ok: [192.168.44.12] TASK [测试w] ******************************************************************************************* changed: [192.168.44

Ansible 之 ansible-playbook基础入门使用

霸气de小男生 提交于 2021-01-21 09:51:10
一、通过playbook安装与设置zookeeper --- #必须字段,类同于#/bin/bash - hosts: test #远程操作主机 remote_user: cedar #远程操作用户 become: yes #是否sudo tasks: - name: "安装zookeeper" #任务命名 command: yum -y install mesosphere-zookeeper #远程执行命令安装zook - name: "启动zookeeper" #任务命名 service: #service模块 name: zookeeper #服务名zookeeper state: started #动作started - name: "设置开机启动" #任务命名 service: #service模块 name: zookeeper #服务名zookeeper enabled: yes #enabled参数为YES开机启动 来源: oschina 链接: https://my.oschina.net/u/4347380/blog/4917179