Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Атомарные обновления в OSTree

Дата публикации: 25-12-2025 01:00:00

Атомарные обновления в OSTree

Основное содержимое страницы с новостью.



     ,   
 : "  -   ".
   -  ,       
 :  ,   , 
      , -  ,
    ,   ""    
       .

    ,    .   , 
 " =   "   
 : ,   
 ޣ   :      .

OSTree   :     () 
 .  "  200 , ",  "  
  ,   ,   
 ".

   - :    ,   
,   ,  ,      
.    .   2-3 .

  OSTree   ޣ ""

OSTree -      ""   (,
  )   .  -   
 ,         .

 OSTree    ,      :
 -   , Ref -  "/",   
. , ref   ". 5.2 minimal  x86_64". Remote
-  ,    refs   (/,
  ).      " ",
  ref. Ref -   :    .



     "deploy"  "rollback".
Deploy -  ף    sysroot ,  
    .  deploy    
,      " ".

Rollback -     deploy. ,    - 
" 17   ",     ף 
.  rollback     .

    "  ":    
.     :  
     - "  /  ".


 OSTree-  sysroot - ,  :

*  OSTree (, ),
* ף ,
* ,   .

     "  ",  -   :

*  sysroot ף  OSTree;
*  /boot/loader     (entries),   .

      -  ,     " ".


OSTree   "   ".
     ()?

     RPM,     "rpm-ostree".  ң
   (treefile,  JSON),    
,        OSTree-.

Treefile -    :     " ", 
    "  ".



 OSTree   " "

 :  ,  ,   .

   -     .  
 ,   :

*       ,
*     ,
*      ,
*    -    ,  " 
"   .

-  ""     .


 OSTree-  : "    ref X".
Ref X    .  -   .
 ,       ref/,   .

  ,         . 
,  ""      .

   " "     
   .
   ,      (
 / ).

 :        .   
  -    ()  ,   ۣ  production.


OSTree -   "  ".   :

* :   .
* :    "       ݣ 15
"   .

   ,    - , OSTree  .
   ,   -    , OSTree  .



 OSTree ,   - 


:

1.   /
  ,  "  "   ,   " ".

2. Edge  ̣ 
        "   ".

3.    
   ,       
,   .

4.  
NAT, VPN, IDS/, ,    -  
      .



    :

1.         
     ""  ( ,   ),
    .

2.  " "   /
OSTree ,    ()   (ref).  
   .

3.    refs   
 ,   stable/testing,   refs,  ,  .

4.  BIOS/UEFI      
OSTree    : root-, fstab,  BIOS/UEFI
- ӣ   .    "    ", ģ
    .


   OSTree:   ?

 .        :

1.  OSTree -  , :

*  RPM-     treefile (JSON),
*    OSTree-,
*  summary,
*   OSTree-  HTTP(S)  .

2.  -   (   ), :

*  remote   ,
*  pull  ref,
*  deploy,
*     deploy.

 .      " ",      :

* mkostreerepo - / OSTree-   (rpm-ostree
compose tree + summary).
* mk-ostree-host.sh -      deploy  ref (   3 ).

   -  :   ,  ,  
,     .




 :  OSTree-  .

  

 :

* rpm-ostree  ostree ( rpm-ostree , mkostreerepo 
   tdnf);
*   RPM- ( rpm-ostree   );
*   :  ԣ,    compose.

mkostreerepo    :

* REPOPATH/rep -  OSTree ( ,  );
* REPOPATH/cache -   ( ,   ).

   mkostreerepo:

1.   " " (  JSON)

    JSON,    REPOPATH/niceos-base.json.
   -    treefile (niceos-base.json)  .

:

   sudo /usr/bin/rpm-ostree-server/mkostreerepo -r=/srv/ostree/niceos


 ģ:

*   /srv/ostree/niceos (  );
*   repo  cache;
*     niceos-base.json;
*    *.repo (     ޣ custom );
*  rpm-ostree compose tree,    ref;
*  summary.

2.   "ϣ " ( treefile JSON)

    :      .

:

   sudo /usr/bin/rpm-ostree-server/mkostreerepo \
   -r=/srv/ostree/niceos \
   -p=/srv/ostree/niceos/treefiles/niceos-minimal.json


 :

* ,  JSON ,
*    REPOPATH (       ),
*  .


3. "Custom repo files" (-c) - ,  

 -c/--customrepo  "  ,   ".
       (Y/N),    CI/.


 :

*      *.repo     -  -c,
*  ,         ,
     *.repo     .

 (    ):


 sudo /usr/bin/rpm-ostree-server/mkostreerepo \
   -c \
   -r=/srv/ostree/niceos \
   -p=/srv/ostree/niceos/niceos-base.json


 treefile (JSON)      :

1. ref -   .  " API-"  .
2. repos -  RPM-   .
3. packages/units -     .

   ( ):

 {
   "osname": "niceos",
   "releasever": "5.2",
   "ref": "niceos/5.2/x86_64/minimal",
   "repos": ["niceos", "niceos-updates", "niceos-extras"],
   "packages": ["systemd","openssh","rpm-ostree"],
   "units": ["sshd.service"]
 }


  :
ref   :  ->  -> .
   stable/testing   ,      .


 repo  HTTP(S)   (refs/summary)


    OSTree-: REPOPATH/repo.

 cache    (  ):    .

Summary    mkostreerepo  compose :

* ostree summary --repo=... --update
* ostree summary -v --repo=...

Summary -  ,      refs 
   .
 summary  ̣,      : "ref 
", "pull ģ   ", "   refs".


   

1.  refs:

   ostree refs --repo=/srv/ostree/niceos/repo

2.    ref ():

   ostree log --repo=/srv/ostree/niceos/repo niceos/5.2/$(uname -m)/minimal | head -n 80

3.  summary:

   ostree summary -v --repo=/srv/ostree/niceos/repo

4.   :

   ls -la /srv/ostree/niceos
   ls -la /srv/ostree/niceos/repo | head -n 50
   ls -la /srv/ostree/niceos/cache | head -n 50


   HTTP(S): -   /srv/ostree/niceos/repo  URL :

   http://OSTREE_SERVER/ostree/repo/

      remote   pull/deploy (   3 ).

    ( "  HTTP"):

   curl -I "http://OSTREE_SERVER/ostree/repo/" || true


- " "

1. REPOPATH ,   repo/  cache/.
2. ostree refs   refs (     ).
3. ostree summary -v   .
4. repo/   HTTP(S)   .
5.  release-  :   compose summary 
(   ).


     

 RPM  

  *.repo,  mkostreerepo  , ޣ:

* gpgcheck=1
* gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-NICEOS

   ,    :
       ,  compose ģ  "-
OSTree",  -   RPM.

Customrepo  CI

 -c    (Y/N).  CI  :
 ,  -  ģ " ".
   ,  :

*    ,
*    *.repo     non-interactive.

  

 -    .
 :

*   repo/    /,
* -   ,
*    (HTTPS   ).


 : ף /  .

   OSTree   :   "
 "    .
 :

1.     sysroot ( ""  pull/deploy),
   
2.   ,      deploy   .

  (  )   :  
  -    .

 .     : mk-ostree-host.sh,   
      ref.

 " "  mk-ostree-host.sh (RAW-)


       :

1.  sparse- *.raw   ( ).
2.    loop-.
3.  GPT  BIOS-:

   * p1: BIOS boot ( GRUB2),
   * p2: /boot,
   * p3: / ().

4.  device-mapper    (kpartx).
5.  p2  p3  ext4.
6.  p3  sysroot, p2  /boot.
7.  OSTree sysroot,  remote,  pull  ref  deploy.
8.     FS (/dev, /proc, /sys, /run, /boot).
9.  GRUB2  ,  ,  kernel args.
10.  root= ,      .
11.  /etc/fstab     root.
12.   ӣ   loop/devicemapper (  ).


 :

* FILE_SIZE -    .
* IMG_NAME -  ( IMG_NAME.raw).
* IP_ADDR -  OSTree- (remote   http://IP_ADDR).
* REPO_REF - ref,    ( niceos/5.2/x86_64/minimal).
* MOUNT_POINT -    sysroot  .
* root-dev -  :   ""    ( /dev/sda3  /dev/vda3).


       - :

   /dev/mapper/loop0p3


   VM/     .
   , :

* /dev/sda3 ( SATA/SCSI ),
* /dev/vda3 (virtio  KVM/QEMU),
*       .

    :
  root=  ""  ,    
  root-dev,        ,  
 .

 root-dev   -  :      "cannot mount root".


  (BIOS + SATA: /dev/sda3)

   sudo ./mk-ostree-host.sh \
   -s 20 \
   -n niceos-5.2-minimal \
   -i 10.0.0.10 \
   -r niceos/5.2/x86_64/minimal \
   -m /mnt/niceos-root \
   --root-dev /dev/sda3


  (BIOS + virtio: /dev/vda3)


 sudo ./mk-ostree-host.sh \
   -s 20 \
   -n niceos-5.2-virtio \
   -i 10.0.0.10 \
   -r niceos/5.2/x86_64/minimal \
   -m /mnt/niceos-root \
   --root-dev /dev/vda3


    /var/log/mk-ostree-host.sh-YYYY-MM-DD.log


:

   sudo tail -n 200 "/var/log/mk-ostree-host.sh-$(date +%Y-%m-%d).log"



       

 VM ,   - ,   
deploy     .

  

1.    root (  root:changeme):

   passwd

2.   OSTree:

   ostree admin status

 :

*  ,  deploy ,
*   ,
*      ( ).

3.   /  /boot:

   mount | egrep ' on / | on /boot '

4.  fstab:

   cat /etc/fstab

  ():

* /dev/sda3 -> /
* /dev/sda2 -> /boot

  VM  virtio,    /dev/vda* (  
 root-dev  fstab).

5.   :

   ls -la /boot/loader/entries/

   ,  deploy    entry.


  (rollback)   

OSTree  ,   -   " 30    30 ",
   deploy.

 :

*    " " (deploy A),
*  /  (deploy B),
*     B -   -    A.

 ,      ,     :

1.    ,
2.   ,   deploy  .

 ,   SLA,     : " 
",   "     ".


     

VM  :  root-dev

:

   kernel panic / cannot mount root /  root device.

:   root=   /dev/sda3,    -
/dev/vda3 ( ).

:

*     --root-dev,
*  (  )  loader entries  fstab  -   
"",    .


   ref: /summary/ref

:

   pull , ref  ,  refs .

:

*    HTTP(S) ,
*    repo/,
* summary  ̣,
* ref  .

 :

* curl -I  URL ,
* ostree remote refs  ,
* ostree summary -v  .


 UEFI,   BIOS

: VM   , "No bootable device".

:  mk-ostree-host.sh  BIOS-only (bios_grub),  EFI System Partition.

:

*     UEFI (ESP + grub2-efi),
*   " "      .


  , fstab  

:   , /boot       .

: fstab ֣   /dev/sdX  /dev/vdX,   .

:

*    (virtio/sata),
*    UUID/labels  fstab    (   ).


- " "

1.      (BIOS/virtio  BIOS/sata -  ).
2.  root Σ (root:changeme      ).
3. ostree admin status   deploy/ref.
4. /  /boot  , /etc/fstab    .
5. /boot/loader/entries  ,  deploy.
6.    :   (ref stable/testing),     .


  ""  :     ref, 
 deploy  /      .

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Создание загрузочного атомарно обновляемого образа Oracle Linux при помощи OSTree02.526-10-2025
2Отладка исходного кода Asterisk02.505-09-2025
3Повышение производительности FUSE при помощи io_uring02.529-06-2025
4Запуск Linux-контейнеров во FreeBSD01501-11-2025
5Ускорение пересборки llama.cpp02.527-01-2026
6Пользователей заставили уйти с Windows 10026.6714-08-2026
7Rocky Linux git-lfs Significant Privilege Escalation Remedy RLSA-2026-308530501-07-2026
8Запуск KDE Plasma 6 с Wayland во FreeBSD08.7509-09-2025
9Всё о жизненных циклах растений для ЕГЭ02.514-04-2026
10Рациональные неравенства. Зачётная работа02.515-08-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 2.5. Источник: www.opennet.ru.